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
コメント