PowerShellでログを出力する方法|Out-File・追記・日付入りログを解説

PowerShell

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
例えば2026年9月7日に実行すると、
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では、エラーが発生したときの内容をログに残すこともできます。
例えばtrycatchを使用します。

$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
実際のPowerShellスクリプトでは、日付・時刻を付けたり、ログ出力を関数にしたりすると管理しやすくなります。
特にバックアップやファイルコピーなどを自動実行する場合は、処理結果やエラーをログとして残しておくことをおすすめします。
タイトルとURLをコピーしました