次の方法で共有


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

変数には $CSelected.System.Globalization.CultureInfo オブジェクトが格納されます。 オブジェクトは、パイプラインから Get-CultureSelect-Object出力を送信した結果です。 Property パラメーターは、アスタリスク (*) ワイルドカードを使用して、オブジェクトに含まれるすべてのプロパティを指定します。

Out-StringInputObject パラメーターを使用して、 変数に格納されている 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-StringPattern パラメーターを使用してテキスト 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

入力

PSObject

パイプライン Out-Stringの下にオブジェクトを 送信できます。

出力

String

Out-String は、入力オブジェクトから作成された文字列を返します。

メモ

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