PowerShellでテキストファイルやログファイルに内容を追記する際に便利なコマンドがAdd-Contentです。本記事では、Add-Contentの基本的な使い方から、具体的な使用例、オプションの解説、エラーが発生した場合の対処法まで詳しく解説します。PowerShellを使って効率的にファイル操作を行いたい方は、ぜひ参考にしてください。
Add-Contentは、PowerShellで既存のファイルに新しい内容を追記するためのコマンドです。例えば、ログファイルや設定ファイルに追加の情報を書き込むときに便利です。
Add-Content -Path <ファイルパス> -Value <追加する内容> 例: log.txtに”エラーログを追加”という内容を追記する場合
Add-Content -Path "C:\log.txt" -Value "エラーログを追加" このコマンドを実行すると、log.txtの末尾に”エラーログを追加”というテキストが追加されます。
追記する対象のファイルを指定します。複数のファイルに追記することも可能です。
Add-Content -Path "C:\file1.txt", "C:\file2.txt" -Value "共通の内容を追加" 追記する内容を指定します。
Add-Content -Path "C:\log.txt" -Value "新しいログエントリ" エンコーディングを指定するオプションです。デフォルトでは UTF8NoBOM が使用されます。
Add-Content -Path "C:\log.txt" -Value "追加データ" -Encoding UTF8 利用可能なエンコーディング:
ASCIIUTF8UTF8NoBOMUnicodeBigEndianUnicodeDefaultOEMファイルが読み取り専用でも追記できるようにするオプションです。
Add-Content -Path "C:\log.txt" -Value "強制的に追加" -Force 改行なしで追記するオプションです。
Add-Content -Path "C:\log.txt" -Value "改行なしの追加" -NoNewline $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Add-Content -Path "C:\log.txt" -Value "$timestamp - 新しいログエントリ" Add-Content -Path "C:\log.txt" -Value @(
"エントリ1",
"エントリ2",
"エントリ3"
) $jsonData = Get-Content "C:\data.json" | ConvertFrom-Json
$jsonData += @{ id=3; name="新しいユーザー" }
$jsonData | ConvertTo-Json | Set-Content "C:\data.json" PowerShellには、Out-Fileというコマンドもありますが、Add-Contentとは使い方が異なります。
| コマンド | 用途 | 既存データの扱い |
|---|---|---|
Add-Content | ファイルの末尾に追記 | データを保持 |
Out-File -Append | ファイルの末尾に追記 | データを保持 |
Set-Content | ファイルの内容を上書き | 既存データを削除 |
例えば、以下の2つは同じ動作になります。
"新しい行" | Out-File -FilePath "C:\log.txt" -Append Add-Content -Path "C:\log.txt" -Value "新しい行" if (!(Test-Path "C:\log.txt")) {
New-Item -Path "C:\log.txt" -ItemType File
}
Add-Content -Path "C:\log.txt" -Value "新規作成と追加" 管理者権限が必要な場合は、PowerShellを管理者として実行してください。
Start-Process powershell -Verb RunAs try {
Add-Content -Path "C:\protected.txt" -Value "書き込み"
} catch {
Write-Host "エラー発生: $_"
} PowerShellのAdd-Contentコマンドは、ファイルにデータを追記するための便利なツールです。オプションを活用することで、エンコーディング指定や改行なしの追加など、より柔軟な操作が可能になります。ログ管理やデータの追加処理に活用して、効率的なファイル操作を実現しましょう。