もくじ
📝 はじめに
PowerShellでログ出力や処理履歴を残していると、
「既存のファイルに追記したい」
「前の内容は残したまま、新しい行を追加したい」
「実行ログを時系列で蓄積したい」
という場面は非常によくあります。
そんなときに使うのが
Add-Content です。
ファイルの内容を消さずに、末尾へ追記するための基本コマンドです。
- ログファイルに処理結果を追加したい
- 履歴ファイルを時系列で残したい
- 既存ファイルを壊さず更新したい
✅ このコマンドでできること(要点)
- 既存ファイルの末尾に内容を追記できる
- ファイルがなければ新規作成される
- 複数行・配列の追記に対応
- ログ・履歴管理に最適
✅ Add-Content でできること
Add-Content は、
指定したファイルに対して
既存の内容を保持したまま、
新しい内容を末尾に追加するコマンドです。
Set-Content が
「内容を上書きする」のに対し、
Add-Content は
「積み重ねて書き足す」用途で使います。
🧩 基本構文
Add-Content ファイルパス 内容
内容には文字列・変数・配列などを指定できます。
▶ 基本的な使い方(まずこれだけ)
🔹 ファイルに1行追記する
Add-Content C:\Logs\app.log "処理が完了しました"
既存の内容は残したまま、
最後の行に文字列が追加されます。
🔹 変数の内容を追記する
$msg = "実行日時: $(Get-Date)"
Add-Content C:\Logs\app.log $msg
実行ログを残すときの定番パターンです。
🛠 よく使われる指定例
🔹 複数行をまとめて追記する
$lines = @(
"----"
"処理開始: $(Get-Date)"
"結果: OK"
)
Add-Content C:\Logs\app.log $lines
配列を渡すと、1要素=1行として追記されます。
🔹 パイプラインの結果を追記する
Get-Service |
Select-Object Name, Status |
Add-Content C:\Logs\service.log
コマンドの実行結果を履歴として残せます。
💼 実務でよく使う使用例(応用)
🔹 実行ログを時系列で残す
Add-Content C:\Logs\run.log "[$(Get-Date)] スクリプト開始"
# 処理
Add-Content C:\Logs\run.log "[$(Get-Date)] スクリプト終了"
🔹 エラー発生時だけログに追記
try {
# 処理
}
catch {
Add-Content C:\Logs\error.log $_
}
- Get-Date と組み合わせて時刻付きログ
- try / catch でエラーログ管理
- 定期処理・バッチの実行履歴保存
🧩 よくある勘違い・つまずきポイント
- 上書きされると思って使うと内容が増え続ける
- 改行を意識しないと読みづらくなる
- 巨大ファイルになると処理が遅くなる
- 文字コードの違いで問題が出る場合がある
- バイナリファイルには不向き
🔄 cmdとの違いについて
cmd では リダイレクト(>>)を使いますが、
PowerShell の Add-Content は
出力をオブジェクトとして安全に追記できます。
⚠ エラー・うまく動かないときの確認ポイント
- 書き込み先フォルダが存在しているか
- 書き込み権限があるか
- 他プロセスがファイルを使用していないか
- ファイルサイズが極端に大きくなっていないか
🧠 注意点
Add-Content は非常に便利ですが、
ログを無制限に追記し続けると
ファイルサイズが肥大化します。
定期的なローテーションや削除も
あわせて検討しましょう。
📌 まとめ
- Add-Content はファイルに追記するコマンド
- 既存内容は保持される
- ログ・履歴管理に最適
- Set-Content との使い分けが重要
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイルに追記したい
- ログを蓄積したい
- 実行履歴を残したい
- エラーログを保存したい
- エラーや実行できない原因を調べたい
- PowerShellでログ管理したい
- 安全に書き込みたい
