もくじ
📝 はじめに
PowerShellでログ出力や設定変更を行っていると、
「ファイルに結果を書き込みたい」
「既存ファイルの内容を上書きしたい」
「スクリプトの実行結果を保存したい」
という場面はとても多くあります。
そんなときに使うのが
Set-Content です。
ファイルに対して内容を書き込む(上書きする)ための基本コマンドです。
- ログファイルを新しく書き直したい
- 設定ファイルの内容を更新したい
- スクリプトの結果をファイルに保存したい
✅ このコマンドでできること(要点)
- ファイルに文字列を書き込める
- 既存ファイルの内容を上書きできる
- ファイルが存在しなければ新規作成される
- スクリプト結果の保存に使える
✅ Set-Content でできること
Set-Content は、
指定したファイルに対して
内容をそのまま書き込む(置き換える)コマンドです。
既存の内容はすべて消え、
新しい内容に完全に置き換えられます。
「初期化する」「最新状態を書き出す」
という用途に向いています。
🧩 基本構文
Set-Content ファイルパス 内容
内容には文字列や変数を指定できます。
▶ 基本的な使い方(まずこれだけ)
🔹 ファイルに文字列を書き込む
Set-Content C:\Logs\result.txt "処理が完了しました"
result.txt が作成され、
内容が書き込まれます。
🔹 変数の内容を書き込む
$msg = "実行結果: OK"
Set-Content C:\Logs\status.txt $msg
スクリプト結果の保存によく使われます。
🛠 よく使われる指定例
🔹 複数行を書き込む
$lines = @(
"1行目"
"2行目"
"3行目"
)
Set-Content C:\Logs\multi.txt $lines
配列を渡すと、1行ずつ書き込まれます。
🔹 パイプラインの結果を書き込む
Get-Process |
Select-Object Name, Id |
Set-Content C:\Logs\process.txt
コマンド結果をそのままファイルに保存できます。
💼 実務でよく使う使用例(応用)
🔹 ログファイルを毎回作り直す
Set-Content C:\Logs\app.log "ログ開始: $(Get-Date)"
🔹 設定ファイルを再生成する
$config = @(
"mode=prod"
"timeout=30"
)
Set-Content C:\App\config.ini $config
- Get-Content で読み込み
- Set-Content で書き戻し
- 設定ファイルの更新処理
🧩 よくある勘違い・つまずきポイント
- 既存内容はすべて上書きされる
- 追記したい場合は使わない
- 文字コードの違いで問題が出る場合がある
- バイナリファイルには不向き
- 意図せず重要ファイルを消すことがある
🔄 cmdとの違いについて
cmd では echo や
リダイレクト(>)を使いますが、
PowerShell の Set-Content は
出力をオブジェクトとして安全に書き込めるのが特徴です。
⚠ エラー・うまく動かないときの確認ポイント
- 書き込み先フォルダが存在しているか
- 書き込み権限があるか
- 他プロセスがファイルを使用していないか
- 上書きして問題ないファイルか
🧠 注意点
Set-Content は
内容を完全に上書きします。
追記したい場合は
Add-Content を使うなど、
用途に応じて使い分けましょう。
📌 まとめ
- Set-Content はファイルに書き込む基本コマンド
- 既存内容はすべて上書きされる
- ログ・設定ファイル作成に便利
- 追記用途では使わない
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイルに書き込みたい
- ログを保存したい
- 設定ファイルを更新したい
- スクリプト結果を保存したい
- エラーや実行できない原因を調べたい
- PowerShellで自動化したい
- 安全に上書きしたい
