Out-String
入力オブジェクトを文字列として出力します。
構文
Out-String
[-Width <Int32>]
[-NoNewline]
[-InputObject <PSObject>]
[<CommonParameters>]
Out-String
[-Stream]
[-Width <Int32>]
[-InputObject <PSObject>]
[<CommonParameters>]
説明
Out-String
コマンドレットは、入力オブジェクトを文字列に変換します。 既定では、Out-String
は文字列を蓄積して 1 つの文字列として返しますが、Stream パラメーターを使用して、Out-String
を一度に 1 行ずつ返したり、文字列の配列を作成したりできます。 このコマンドレットを使用すると、オブジェクトの操作があまり便利でない場合に、従来のシェルと同様に文字列出力を検索および操作できます。
PowerShell では、パイプラインで Out-String
を使用するための短縮形の方法として Out-String -Stream
を呼び出す OSS
関数も追加されます。
例
例 1: 現在のカルチャを取得し、データを文字列に変換する
この例では、現在のユーザーの地域設定を取得し、オブジェクト データを文字列に変換します。
$C = Get-Culture | Select-Object -Property *
Out-String -InputObject $C -Width 100
Parent : en
LCID : 1033
KeyboardLayoutId : 1033
Name : en-US
IetfLanguageTag : en-US
DisplayName : English (United States)
NativeName : English (United States)
EnglishName : English (United States)
TwoLetterISOLanguageName : en
ThreeLetterISOLanguageName : eng
ThreeLetterWindowsLanguageName : ENU
CompareInfo : CompareInfo - en-US
TextInfo : TextInfo - en-US
IsNeutralCulture : False
CultureTypes : SpecificCultures, InstalledWin32Cultures, FrameworkCultures
NumberFormat : System.Globalization.NumberFormatInfo
DateTimeFormat : System.Globalization.DateTimeFormatInfo
Calendar : System.Globalization.GregorianCalendar
OptionalCalendars : {System.Globalization.GregorianCalendar,
System.Globalization.GregorianCalendar}
UseUserOverride : True
IsReadOnly : False
Select-Object
に送信 Get-Culture
結果です。
Property パラメーターでは、アスタリスク (*
) ワイルドカードを使用して、オブジェクトに含まれるすべてのプロパティを指定します。
Out-String
では、InputObject パラメーターを使用して、$C
変数に格納されている CultureInfo オブジェクトを指定します。
$C
内のオブジェクトは文字列に変換されます。
手記
Out-String
配列を表示するには、出力を変数に格納し、配列インデックスを使用して要素を表示します。 配列インデックスの詳細については、「about_Arrays」を参照してください。
$str = Out-String -InputObject $C -Width 100
例 2: オブジェクトの操作
この例では、オブジェクトの操作と文字列の操作の違いを示します。 このコマンドは、テキスト gcm(Get-Command
のエイリアス) を含むエイリアスを表示します。
Get-Alias | Out-String -Stream | Select-String -Pattern "gcm"
Alias gcm -> Get-Command
Get-Alias
は、System.Management.Automation.AliasInfo オブジェクト (エイリアスごとに 1 つ) を取得し、そのオブジェクトをパイプラインに送信します。
Out-String
では、Stream パラメーターを使用して、すべてのオブジェクトを 1 つの文字列に連結するのではなく、各オブジェクトを文字列に変換します。
System.String オブジェクトはパイプラインに送信され、Select-String
は Pattern パラメーターを使用して、テキスト gcmの一致を検索します。
手記
例 3: 切り捨てを防ぐには、Width パラメーターを使用します。
Out-String
からのほとんどの出力は次の行にラップされますが、Out-String
に渡される前に書式設定システムによって出力が切り捨てられるシナリオがあります。
Width パラメーターを使用すると、切り捨てを回避できます。
PS> @{TestKey = ('x' * 200)} | Out-String
Name Value
---- -----
TestKey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
PS> @{TestKey = ('x' * 200)} | Out-String -Width 250
Name Value
---- -----
TestKey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
パラメーター
-InputObject
文字列に書き込むオブジェクトを指定します。 オブジェクトを含む変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-NoNewline
PowerShell フォーマッタによって生成された出力からすべての改行を削除します。 文字列オブジェクトの一部である改行は保持されます。
このパラメーターは、PowerShell 6.0 で導入されました。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Stream
既定では、Out-String
は、空白のヘッダーや末尾の改行を含め、コンソールに表示されるように書式設定された 1 つの文字列を出力します。
Stream パラメーターを使用すると、Out-String
で各行を 1 つずつ出力できます。 これに対する唯一の例外は、複数行の文字列です。 その場合も、Out-String
は文字列を単一の複数行の文字列として出力します。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Width
出力の各行の文字数を指定します。 追加の文字は、使用されるフォーマッタ コマンドレットに応じて次の行にラップされるか、切り捨てられます。 Width パラメーターは、書式設定されているオブジェクトにのみ適用されます。 このパラメーターを省略すると、幅はホスト・プログラムの特性によって決まります。 ターミナル (コンソール) ウィンドウでは、現在のウィンドウ幅が既定値として使用されます。 インストール時の PowerShell コンソール ウィンドウの既定の幅は 80 文字です。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
任意のオブジェクトをこのコマンドレットにパイプできます。
出力
このコマンドレットは、入力オブジェクトから作成された文字列を返します。
メモ
Out
動詞を含むコマンドレットは、オブジェクトの書式を設定しません。
Out
コマンドレットは、指定した表示先のフォーマッタにオブジェクトを送信します。
PowerShell 7.2 では、ANSI エスケープ シーケンスのレンダリング方法を制御する機能が追加されました。
Out-String
に渡される ANSI 修飾出力は、$PSStyle.OutputRendering
プロパティの設定に基づいて変更できます。 詳細については、about_ANSI_Terminalsを参照してください。