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-StringPattern パラメーターを使用してテキスト 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

入力

PSObject

任意のオブジェクトをこのコマンドレットにパイプできます。

出力

String

このコマンドレットは、入力オブジェクトから作成された文字列を返します。

メモ

動詞を含むコマンドレットは、オブジェクトの Out 書式を設定しません。 コマンドレットは Out 、指定された表示先のフォーマッタにオブジェクトを送信します。

PowerShell 7.2 では、ANSI エスケープ シーケンスのレンダリング方法を制御する機能が追加されました。 渡 Out-String される ANSI 修飾出力は、プロパティの $PSStyle.OutputRendering 設定に基づいて変更できます。 詳細については、「about_ANSI_Terminals」を参照してください