Out-String
入力オブジェクトを文字列として出力します。
構文
Out-String
[-Width <Int32>]
[-NoNewline]
[-InputObject <PSObject>]
[<CommonParameters>]
Out-String
[-Stream]
[-Width <Int32>]
[-InputObject <PSObject>]
[<CommonParameters>]
説明
コマンドレットは Out-String
、入力オブジェクトを文字列に変換します。 既定では、 Out-String
は文字列を蓄積し、それらを 1 つの文字列として返しますが、Stream パラメーターを使用して、一度に 1 行を返すか、文字列の配列を作成するように指示Out-String
できます。 オブジェクトを簡単に操作できないときに、このコマンドレットを使用すると、従来のシェルで行う場合と同じように文字列出力を検索して操作することができます。
例
例 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
変数には $C
Selected.System.Globalization.CultureInfo オブジェクトが格納されます。 オブジェクトは、パイプラインから Get-Culture
に Select-Object
出力を送信した結果です。 Property パラメーターは、アスタリスク (*
) ワイルドカードを使用して、オブジェクトに含まれるすべてのプロパティを指定します。
Out-String
InputObject パラメーターを使用して、 変数に格納されている CultureInfo オブジェクトを$C
指定します。 内の $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
は、エイリアスごとに 1 つずつ System.Management.Automation.AliasInfo オブジェクトを取得し、パイプラインの下にオブジェクトを送信します。 Out-String
では、 Stream パラメーターを使用して、すべてのオブジェクトを 1 つの文字列に連結するのではなく、各オブジェクトを文字列に変換します。
System.String オブジェクトはパイプラインに送信され、Select-String
Pattern パラメーターを使用してテキスト gcm の一致を検索します。
注意
Stream パラメーターを省略すると、返される単一の文字列Out-String
でテキスト gcm が検索されるためSelect-String
、コマンドはすべてのエイリアスを表示します。
例 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
文字列に書き込むオブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoNewline
PowerShell フォーマッタによって生成された出力からすべての改行を削除します。 文字列オブジェクトの一部である改行は保持されます。
このパラメーターは PowerShell 6.0 で導入されました。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Stream
既定では、 Out-String
空白のヘッダーや末尾の改行を含め、コンソールに表示されるように書式設定された単一の文字列が出力されます。 Stream パラメーターを使用すると、各行を 1 つずつ出力できますOut-String
。 これに対する唯一の例外は、複数行の文字列です。 その場合でも、 Out-String
は文字列を単一の複数行の文字列として出力します。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Width
出力の各行の文字数を指定します。 追加の文字は、次の行にラップされるか、使用されるフォーマッタ コマンドレットに応じて切り捨てられます。 Width パラメーターは、書式設定されているオブジェクトにのみ適用されます。 このパラメーターを省略した場合、ホスト プログラムの特性によって幅が決まります。 ターミナル (コンソール) ウィンドウでは、現在のウィンドウ幅が既定値として使用されます。 PowerShell コンソール ウィンドウの既定の幅は、インストール時に 80 文字です。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
パイプライン Out-String
の下にオブジェクトを 送信できます。
出力
Out-String
は、入力オブジェクトから作成された文字列を返します。
メモ
動詞を含む Out
コマンドレットは、オブジェクトの書式を設定しません。 コマンドレットは Out
、指定した表示先のフォーマッタにオブジェクトを送信します。