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.txt。
Get-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 |
入力
任意のオブジェクトをパイプ処理して Out-File
できます。
出力
None
Out-File
は出力を生成しません。
メモ
Out
コマンドレットは、オブジェクトを書式設定せず、単にオブジェクトをレンダリングして、指定した表示先に送信するだけです。 書式設定されていないオブジェクトを Out
コマンドレットに送信すると、そのオブジェクトをレンダリングする前に、そのオブジェクトが書式設定コマンドレットに送信されます。
PowerShell コマンドの出力を Out-File
コマンドレットに送信するには、パイプラインを使用します。 データを変数に格納し、 InputObject パラメーターを使用してデータを Out-File
コマンドレットに渡すことができます。
Out-File
はデータを送信しますが、出力オブジェクトは生成されません。
Out-File
の出力を Get-Member
にパイプ処理すると、Get-Member
コマンドレットはオブジェクトが指定されていないことを報告します。