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 では、パイプラインでOSS
使用Out-String
する短縮形の方法として呼び出すOut-String -Stream
関数も追加されます。
例
例 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 オブジェクトが格納されます。 このオブジェクトは、パイプラインSelect-Object
から出力をGet-Culture
送信した結果です。 Property パラメーターは、アスタリスク (*
) ワイルドカードを使用して、オブジェクトに含まれるすべてのプロパティを指定します。
Out-String
は InputObject パラメーターを使用して、変数に格納されている CultureInfo オブジェクトを$C
指定します。 オブジェクト $C
は文字列に変換されます。
Note
配列を 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 の一致を検索します。
Note
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
空白のヘッダーや末尾の改行を含め、コンソールに表示されるように書式設定された 1 つの文字列を出力します。 Stream パラメーターを使用するとOut-String
、各行を 1 つずつ出力できます。 これに対する唯一の例外は、複数行の文字列です。 その場合も、 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
書式を設定しません。 コマンドレットは Out
、指定された表示先のフォーマッタにオブジェクトを送信します。
PowerShell 7.2 では、ANSI エスケープ シーケンスのレンダリング方法を制御する機能が追加されました。 渡 Out-String
される ANSI 修飾出力は、プロパティの $PSStyle.OutputRendering
設定に基づいて変更できます。 詳細については、「about_ANSI_Terminals」を参照してください。
関連リンク
PowerShell
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示