Out-String
以一系列字串的形式將對象傳送至主機。
語法
Out-String
[-Stream]
[-Width <Int32>]
[-InputObject <PSObject>]
[<CommonParameters>]
Description
Out-String
Cmdlet 會將 Windows PowerShell 管理的物件轉換成字串陣列。
根據預設,Out-String
會累積字串並將它們當做單一字串傳回,但您可以使用 Stream 參數來指示 Out-String
一次傳回一個字符串。
當物件操作較不方便時,此 Cmdlet 可讓您搜尋及操作字串輸出,就像在傳統殼層中一樣。
範例
範例 1:將文字輸出至主控台作為字串
PS C:\> Get-Content C:\test1\testfile2.txt | Out-String
此命令會將 Testfile2.txt 檔案的內容以單一字串的形式傳送至主控台。
它會使用 Get-Content
Cmdlet 來取得檔案的內容。
管線運算符 (|) 會將內容傳送至 Out-String
,以字串的形式將內容傳送至控制台。
範例 2:取得目前的文化特性,並將數據轉換成字串
第一個命令會使用 Get-Culture
Cmdlet 來取得區域設定。
管線運算子 (|) 會將結果傳送至 Select-Object
Cmdlet,它會選取傳回 Get-Culture
文化特性物件的所有屬性 ≦ 。
命令接著會將結果儲存在 $C
變數中。
第二個命令會使用 Out-String
Cmdlet,將 CultureInfo 物件轉換成一系列字串(每個屬性各有一個字元串)。
它會使用 InputObject 參數,將 $C
變數傳遞至 Out-String
。
Width 參數會設定為每行 100 個字元,以防止截斷。
PS C:\> $C = Get-Culture | Select-Object *
PS C:\> Out-String -InputObject $C -Width 100
這些命令會取得目前用戶的地區設定,並將數據轉換成字串。
範例 3:使用物件
PS C:\> Get-Alias | Out-String -Stream | Select-String "Get-Command"
此範例示範使用 物件與使用字串之間的差異。
此命令會顯示包含 「Get-Command」 片語的別名。
它會使用 Get-Alias
Cmdlet 來取得一組 AliasInfo 物件(目前會話中每個別名各一個)。
管線運算符 (|) 會將 Get-Alias
Cmdlet 的輸出傳送至 Out-String
Cmdlet,此 Cmdlet 會將對象轉換成一系列字串。
它會使用 Out-String
Stream 參數個別傳送每個字元串,而不是將它們串連成單一字串。
另一個管線運算符會將字串傳送至 Select-String
Cmdlet,它會選取字串中的任何位置包含 「Get-Command」 的字串。
如果您省略 Stream 參數,命令會顯示所有別名,因為 Select-String
在傳回的單一 Out-String
字串中尋找 “Get-Command”,而格式器會將字符串顯示為數據表。
參數
-InputObject
指定要寫入字串的物件。 輸入包含 物件的變數,或輸入取得物件的命令或表達式。
類型: | PSObject |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Stream
指出 Cmdlet 會個別傳送每個物件的字串。 根據預設,每個物件的字串都會累積並傳送為單一字串。
若要使用 Stream 參數,請輸入 -Stream
或其別名,ost
。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Width
指定每行輸出中的字元數。 任何其他字元都會被截斷,不會包裝。 Width 參數僅適用於格式化的物件。 如果您省略此參數,則寬度取決於主機程式的特性。 Windows PowerShell 控制台的預設值為 80 個字元。
類型: | Int32 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以使用管線將物件傳送至 Out-String
。
輸出
Out-String
會傳回它從輸入物件建立的字串。
備註
- 包含不格式化物件的 Out 動詞命令的 Cmdlet;它們只會轉譯它們,並將其傳送至指定的顯示目的地。 如果您將未格式化的對象傳送至 Out Cmdlet,Cmdlet 會在轉譯之前先將它傳送至格式化 Cmdlet。
- Out Cmdlet 沒有採用名稱或檔案路徑的參數。 若要將數據傳送至 Out Cmdlet,請使用管線運算符 (|) 將 Windows PowerShell 命令的輸出傳送至 Cmdlet。 您也可以將數據儲存在變數中,並使用 InputObject 參數將數據傳遞至 Cmdlet。