PowerShellで処理結果やエラー内容を残しておきたい場合は、ログファイルに出力しておくと便利です。
PowerShellでは「Out-File」コマンドレットを使うことで、文字列やコマンドの実行結果を簡単にテキストファイルへ保存できます。
また、-Appendを指定すれば既存のログファイルへ追記することもできます。
この記事では、PowerShellでログを出力する基本的な方法から、ログへの追記、日付・時刻の追加、ファイル名に日付を付ける方法まで、初心者向けにわかりやすく解説します。
PowerShellでログを出力する基本的な方法
PowerShellでログファイルを出力するだけなら、次のように記述します。
"処理を開始します" | Out-File -FilePath "C:\temp\sample.log"
実行すると、C:\tempフォルダに「sample.log」が作成されます。
ログファイルには次の内容が出力されます。
処理を開始します
既に同じ名前のファイルが存在する場合、Out-Fileは基本的に内容を上書きします。既存のログを残したまま新しい内容を追加したい場合は、後述する-Appendを使用します。
Out-Fileの基本構文
ファイルに文字列を出力するには、「Out-File」コマンドレットを使用します。
Out-File [-FilePath] <string> [-Append] [[-Encoding] <string>] [-NoClobber]
よく使うパラメータ
| パラメータ | 内容 |
|---|---|
-FilePath |
ログファイルの保存先 |
-Append |
既存ファイルに追記 |
-Encoding |
文字コードを指定 |
-NoClobber |
既存ファイルの上書きを防止 |
Out-FileにはほかにもForce、Width、WhatIfなどのパラメータがありますが、通常のログ出力では、まずFilePath・Append・Encodingを覚えておけばよいでしょう。
使用例
S> "Power Shell!" | Out-File -FilePath C:\temp\new.log -Encoding utf8
ファイルが作成されます。

PowerShellでログファイルに追記する
Out-Fileはそのまま使用すると既存のファイルを上書きします。
ログを残していく場合は、-Appendを指定します。
"処理を開始しました" | Out-File -FilePath "C:\temp\sample.log" -Append
"処理が終了しました" | Out-File -FilePath "C:\temp\sample.log" -Append
処理を開始しました
処理が終了しました
-Appendが便利です。ログに日付・時刻を付けて出力する
実際のログでは、
いつ実行された処理なのか
が分かるように日付と時刻を付けておくと便利です。
$log = "$(Get-Date -Format 'yyyy/MM/dd HH:mm:ss') 処理を開始しました"
$log | Out-File -FilePath "C:\temp\sample.log" -Append
2026/09/07 10:30:15 処理を開始しました
ログファイル名に日付を付ける
ログを日ごとに分けたい場合は、ファイル名に日付を付けます。
$date = Get-Date -Format "yyyyMMdd"
$logFile = "C:\temp\log_$date.log"
"処理を開始しました" | Out-File -FilePath $logFile -Append
log_20260907.log
毎日実行するPowerShellスクリプトでは、日付ごとにログを分けておくと管理しやすくなります。
ログ出力を関数にする
何度もログを出力する場合は、関数にしておくと便利です。
$LOGFILE = "C:\temp\sample.log"
function Write-Log($message)
{
$date = Get-Date -Format "yyyy/MM/dd HH:mm:ss"
"$date : $message" | Out-File -FilePath $LOGFILE -Append
}
Write-Log "処理を開始しました"
Write-Log "ファイルをコピーしました"
Write-Log "処理が終了しました"
2026/09/07 10:30:15 : 処理を開始しました
2026/09/07 10:30:18 : ファイルをコピーしました
2026/09/07 10:30:20 : 処理が終了しました
Write-Log "○○しました"
PowerShellのエラーをログに出力する
PowerShellでは、エラーが発生したときの内容をログに残すこともできます。
例えばtryとcatchを使用します。
$logFile = "C:\temp\error.log"
try {
Copy-Item "C:\data\sample.txt" "D:\backup\" -ErrorAction Stop
}
catch {
"$(Get-Date -Format 'yyyy/MM/dd HH:mm:ss') ERROR : $($_.Exception.Message)" |
Out-File -FilePath $logFile -Append
}
自動実行するPowerShellスクリプトでは画面を見ていないことも多いため、エラーをログに残しておくと原因を確認しやすくなります。
まとめ
PowerShellでログファイルを出力するには、Out-Fileコマンドレットを使用します。
基本的な書き方は次のとおりです。
"ログに残す内容" | Out-File -FilePath "C:\temp\sample.log"
-Appendを指定します。"ログに残す内容" | Out-File -FilePath "C:\temp\sample.log" -Append
特にバックアップやファイルコピーなどを自動実行する場合は、処理結果やエラーをログとして残しておくことをおすすめします。
