もくじ
📝 はじめに
PowerShellでコマンド結果をファイルに保存するとき、
「日本語が文字化けする」
「Excelで開いたらおかしい」
といった経験はありませんか?
その原因の多くは文字コード(Encoding)の違いです。
PowerShellでは Out-File に
-Encoding を指定することで、
出力する文字コードを明示できます。
- CSVやログを日本語で正しく保存したい
- Excelで開いても文字化けしないようにしたい
- システムや他ツールに渡すファイルを作りたい
✅ このコマンドでできること(要点)
- コマンド結果をファイルに保存できる
- 出力時の文字コードを明示できる
- 文字化けトラブルを防げる
- CSV / JSON / HTML / ログ出力に幅広く使える
✅ Out-File -Encoding でできること
Out-File は、
PowerShellの出力結果をテキストファイルとして保存するコマンドです。
-Encoding を指定することで、
「どの文字コードで保存するか」を明確にできます。
似た用途の考え方としては「保存時に文字コードを固定する」です。
🧩 基本構文
コマンド | Out-File -Path "ファイルパス" -Encoding 文字コード
▶ 基本的な使い方(まずこれだけ)
🔹 UTF-8でファイルに保存する
Get-Process |
Out-File ".\process.txt" -Encoding UTF8
現在はUTF-8が最も無難な指定です。
多くのエディタ・ツールで問題なく開けます。
🔹 日本語Windows向け(既定に近い)で保存する
Get-Service |
Out-File ".\service.txt" -Encoding Default
Default は、
OSの既定コードページ(日本語環境ではShift_JIS相当)になります。
🛠 よく使われる指定例
🔹 Excelで開くCSV用(文字化け対策)
Get-Process |
Select-Object Name, Id, CPU |
Out-File ".\process.csv" -Encoding UTF8
ExcelのバージョンによってはUTF-8推奨です。
文字化けする場合は、Import-Csv 側での指定も確認します。
🔹 ログファイルを追記する
"$(Get-Date) 処理開始" |
Out-File ".\app.log" -Encoding UTF8 -Append
-Append を付けると追記になります。
既存ログ運用ではよく使われます。
🔹 JSONを書き出すときの定番
$obj | ConvertTo-Json -Depth 5 |
Out-File ".\data.json" -Encoding UTF8
JSONはUTF-8指定がほぼ必須です。
💼 実務でよく使う使用例(応用)
🔹 CSV → 加工 → UTF-8で保存
Import-Csv ".\input.csv" |
Where-Object Status -eq "OK" |
Out-File ".\result.csv" -Encoding UTF8
🔹 レポートHTMLを書き出す
Get-Process |
Select-Object -First 10 Name, CPU |
ConvertTo-Html |
Out-File ".\report.html" -Encoding UTF8
- ConvertTo-Json:JSON生成
- ConvertTo-Html:HTMLレポート
- -Append:ログ追記
🧩 よくある勘違い・つまずきポイント
- Encodingを指定しないと環境依存になる
- UTF-8でもExcelで文字化けするケースがある
- 追記時に異なるEncodingを混在させると壊れる
- 表示結果(Format-Table)をそのまま保存してしまう
⚠ エラー・うまく動かないときの確認ポイント
- 保存先パスは正しいか
- 書き込み権限がある場所か
- 既存ファイルと同じEncodingで追記しているか
- 渡す相手(Excel / システム)が期待する文字コードか
🧠 注意点
文字コードは「正解が1つ」ではなく、
受け渡し先に合わせて選ぶのが重要です。
迷ったらUTF-8を基本にし、
文字化けした場合のみ Default / Unicode などを検討すると安全です。
📌 まとめ
- Out-File -Encoding で文字コードを明示できる
- UTF-8は最も汎用的でおすすめ
- ログやCSVではEncoding指定を習慣化すると安心
- 他コマンド(JSON / HTML)と組み合わせて使う
🔎 PowerShellコマンドを探す
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- 文字コードを指定して保存したい
- CSVを書き出したい(Export-Csv)
- JSONを書き出したい(ConvertTo-Json)
