[PowerShell 2.0 入門] 出力をファイルに保存する

PowerShell で実行した結果をファイルに保存したい場合は Out-File コマンドレットを使用します。 (リダイレクション演算子(>)を使用することもできます。) たとえば、現在のプロセス一覧をファイル(たとえば C:\Work\Cmdlet.txt)に保存する場合は下記のようにします。 ファイルが存在しない場合は新規で作成されます。

Get-Process | Out-File -FilePath C:\Work\Process.txt

-FilePath パラメータは省略可能なので下記のように記述することができます。

Get-Process | Out-File C:\Work\Process.txt

次に Out-Fileで使用できるパラメータを見てみましょう。


Append

出力内容を、既存のファイルの末尾に追加します。

Get-Process | Out-File C:\Work\Process.txt -Append

Force

既存の読み取り専用ファイルの上書きを許可します。

Get-Process | Out-File C:\Work\Process.txt -Force

Encoding

出力ファイルのエンコーディングの種類を指定します。 指定できる値は、Unicode、UTF7、UTF8、UTF32、ASCII、BigEndianUnicode、Default、OEM です。既定値は Unicode です。

Get-Process | Out-File C:\Work\Process.txt -Encoding UTF8

NoClober

既存のファイルがある場合には上書きをしません。既定では上書きするようになっています。

Get-Process | Out-File C:\Work\Process.txt -NoClober

InputObject

書き込むオブジェクトを指定します。

$cmd = Get-Process
Out-File -InputObject $cmd -FilePath C:\Work\Process.txt

Width

1行の文字数を指定します。文字数を指定した場合、1行に収まらない文字は切り捨てられます。

Get-Process | Out-File C:\Work\Process.txt -Width 40

[Tips] コマンドレット一覧表を作成する

下記は PowerShell で使用可能なコマンドレットの一覧をファイルに出力します。
通常 Get-Command は CommandType, Name, Definition の3つの列を出力するので、Select-Object でName列だけを出力し、結果をファイルに保存しています。

Get-Command -CommandType cmdlet | Select-Object Name | Out-File C:\Work\CmdletList.txt

コメント

タイトルとURLをコピーしました