共用方式為


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-StringWidth 參數會設定為每行 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-StringStream 參數個別傳送每個字元串,而不是將它們串連成單一字串。 另一個管線運算符會將字串傳送至 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

輸入

PSObject

您可以使用管線將物件傳送至 Out-String

輸出

String

Out-String 會傳回它從輸入物件建立的字串。

備註

  • 包含不格式化物件的 Out 動詞命令的 Cmdlet;它們只會轉譯它們,並將其傳送至指定的顯示目的地。 如果您將未格式化的對象傳送至 Out Cmdlet,Cmdlet 會在轉譯之前先將它傳送至格式化 Cmdlet。
  • Out Cmdlet 沒有採用名稱或檔案路徑的參數。 若要將數據傳送至 Out Cmdlet,請使用管線運算符 (|) 將 Windows PowerShell 命令的輸出傳送至 Cmdlet。 您也可以將數據儲存在變數中,並使用 InputObject 參數將數據傳遞至 Cmdlet。