次の方法で共有


Out-File

出力をファイルに送信します。

構文

Out-File
   [-FilePath] <string>
   [[-Encoding] <string>]
   [-Append]
   [-Force]
   [-NoClobber]
   [-Width <int>]
   [-NoNewline]
   [-InputObject <psobject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Out-File
   [[-Encoding] <string>]
   -LiteralPath <string>
   [-Append]
   [-Force]
   [-NoClobber]
   [-Width <int>]
   [-NoNewline]
   [-InputObject <psobject>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

Out-File コマンドレットは、出力をファイルに送信します。 出力のパラメータを指定する必要がある場合は、リダイレクト演算子 (>) ではなく Out-File を使用します。

例 1: 出力を送信してファイルを作成する

この例では、ローカル コンピューターのプロセスの一覧をファイルに送信する方法を示します。 ファイルが存在しない場合は、Out-File 指定したパスにファイルが作成されます。

Get-Process | Out-File -FilePath .\Process.txt
Get-Content -Path .\Process.txt

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
     29    22.39      35.40      10.98   42764   9 Application
     53    99.04     113.96       0.00   32664   0 CcmExec
     27    96.62     112.43     113.00   17720   9 Code

Get-Process コマンドレットは、ローカル コンピューターで実行されているプロセスの一覧を取得します。 Process オブジェクトは、パイプラインから Out-File コマンドレットに送信されます。 Out-File は、FilePath パラメーターを使用して、Process.txtという名前の現在のディレクトリにファイルを作成します。 Get-Content コマンドは、ファイルからコンテンツを取得し、PowerShell コンソールに表示します。

例 2: 既存のファイルが上書きされないようにする

この例では、既存のファイルが上書きされないようにします。 既定では、Out-File は既存のファイルを上書きします。

Get-Process | Out-File -FilePath .\Process.txt -NoClobber

Out-File : The file 'C:\Test\Process.txt' already exists.
At line:1 char:15
+ Get-Process | Out-File -FilePath .\Process.txt -NoClobber
+               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Get-Process コマンドレットは、ローカル コンピューターで実行されているプロセスの一覧を取得します。 Process オブジェクトは、パイプラインから Out-File コマンドレットに送信されます。 Out-File は、FilePath パラメーターを使用し、Process.txtという名前の現在のディレクトリ内のファイルへの書き込みを試みます。 NoClobber パラメーターは、ファイルが上書きされないようにし、ファイルが既に存在することを示すメッセージを表示します。

例 3: ASCII 形式でファイルに出力を送信する

この例では、特定のエンコードの種類で出力をエンコードする方法を示します。

$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ASCII -Width 50

Get-Process コマンドレットは、ローカル コンピューターで実行されているプロセスの一覧を取得します。 Process オブジェクトは、$Procs変数に格納されます。 Out-File は、FilePath パラメーターを使用して、Process.txtという名前の現在のディレクトリにファイルを作成します。 InputObject パラメーターは、$Procs 内のプロセス オブジェクトをファイル Process.txtに渡します。 Encoding パラメーターは、出力を ASCII 形式 変換します。 Width パラメーターは、一部のデータが切り捨てられる可能性があるため、ファイル内の各行を 50 文字に制限します。

例 4: プロバイダーを使用して出力をファイルに送信する

この例では、FileSystem プロバイダー ドライブにいないときに Out-File コマンドレットを使用する方法を示します。 Get-PSProvider コマンドレットを使用して、ローカル コンピューター上のプロバイダーを表示します。 詳細については、about_Providersを参照してください。

PS> Set-Location -Path Alias:

PS> Get-Location

Path
----
Alias:\

PS> Get-ChildItem | Out-File -FilePath C:\TestDir\AliasNames.txt

PS> Get-Content -Path C:\TestDir\AliasNames.txt

CommandType     Name
-----------     ----
Alias           % -> ForEach-Object
Alias           ? -> Where-Object
Alias           ac -> Add-Content
Alias           cat -> Get-Content

Set-Location コマンドは、Path パラメーターを使用して、現在の場所をレジストリ プロバイダーの Alias:に設定します。 Get-Location コマンドレットは、Alias:の完全なパスを表示します。 Get-ChildItem は、パイプラインの下にオブジェクトを Out-File コマンドレットに送信します。 Out-File では、FilePath パラメーターを使用して、出力の完全なパスとファイル名を指定 C:\TestDir\AliasNames.txtGet-Content コマンドレットは、Path パラメーターを使用し、PowerShell コンソールにファイルの内容を表示します。

パラメーター

-Append

既存のファイルの末尾に出力を追加します。 Encoding が指定されていない場合、コマンドレットは既定のエンコードを使用します。 そのエンコードは、ターゲット ファイルのエンコードと一致しない可能性があります。 これは、リダイレクト演算子 (>>) と同じ動作です。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Confirm

コマンドレットを実行する前に確認を求めるメッセージが表示されます。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Encoding

ターゲット ファイルのエンコードの種類を指定します。 既定値は Unicode です。

このパラメーターに使用できる値は次のとおりです。

  • アスキー ASCII (7 ビット) 文字セットを使用します。
  • BigEndianユニコード UTF-16 をビッグエンディアンのバイトオーダーで使用します。
  • デフォルト システムのアクティブなコード・ページ (通常は ANSI) に対応するエンコードを使用します。
  • OEMの システムの現在の OEM コード ページに対応するエンコードを使用します。
  • Unicode と同じです。
  • ユニコード版 UTF-16 をリトルエンディアンのバイト順で使用します。
  • 不明Unicode と同じです。
  • UTF7 のUTF-7 を使用します。
  • UTF8 のUTF-8 を使用します。
  • UTF32 のUTF-32 をリトルエンディアンのバイト順で使用します。
型:String
指定可能な値:ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
配置:1
規定値:Unicode
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-FilePath

出力ファイルへのパスを指定します。

型:String
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Force

読み取り専用属性をオーバーライドし、既存の読み取り専用ファイルを上書きします。 Force パラメーターは、セキュリティ制限をオーバーライドしません。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InputObject

ファイルに書き込むオブジェクトを指定します。 オブジェクトを含む変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。

型:PSObject
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-LiteralPath

出力ファイルへのパスを指定します。 LiteralPath パラメーターは、入力されたとおりに使用されます。 ワイルドカード文字は使用できません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。 詳細については、about_Quoting_Rulesを参照してください。

型:String
Aliases:PSPath
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-NoClobber

NoClobber は、既存のファイルが上書きされないようにし、ファイルが既に存在することを示すメッセージを表示します。 既定では、指定したパスにファイルが存在する場合、Out-File は警告なしでファイルを上書きします。

型:SwitchParameter
Aliases:NoOverwrite
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NoNewline

ファイルに書き込まれる内容が改行文字で終わらないことを指定します。 入力オブジェクトの文字列形式が連結されて出力が形成されます。 出力文字列の間にスペースや改行は挿入されません。 最後の出力文字列の後に改行は追加されません。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Width

出力の各行の文字数を指定します。 追加の文字は、ラップされずに切り捨てられます。 このパラメータを使用しない場合、幅はホストの特性によって決まります。 PowerShell コンソールの既定値は 80 文字です。

型:Int
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

PSObject

任意のオブジェクトをパイプ処理して Out-Fileできます。

出力

None

Out-File は出力を生成しません。

メモ

Out コマンドレットは、オブジェクトを書式設定せず、単にオブジェクトをレンダリングして、指定した表示先に送信するだけです。 書式設定されていないオブジェクトを Out コマンドレットに送信すると、そのオブジェクトをレンダリングする前に、そのオブジェクトが書式設定コマンドレットに送信されます。

PowerShell コマンドの出力を Out-File コマンドレットに送信するには、パイプラインを使用します。 データを変数に格納し、 InputObject パラメーターを使用してデータを Out-File コマンドレットに渡すことができます。

Out-File はデータを送信しますが、出力オブジェクトは生成されません。 Out-File の出力を Get-Member にパイプ処理すると、Get-Member コマンドレットはオブジェクトが指定されていないことを報告します。