PowerShellのファイル出力はこれだけ覚えればOK【上書き・追記】

                   

「PowerShellでファイルを新規作成して書き込んだり、上書き保存したり、追記して保存したいんだけど、どんなプログラムコードを書けばいいのかわからない…。」とPowerShellのファイル出力について悩んでいる方向け。
PowerShellのファイル出力、とりあえずこれだけ覚えればOKという、簡単なソースコードを教えます。

スポンサーリンク

本記事は下記の2本立てです。

本記事の内容

  • PowerShellのファイル出力はこれだけ覚えればOK【上書き・追記】
  • ファイルに複数行出力したい場合のPowerShellのソースコード

PowerShellのファイル出力はこれだけ覚えればOK【上書き・追記】

PowerShellでファイル出力を行うコードの書き方はいろいろありますが、今回お伝えするのは単純明快わかりやすい書き方です。

これ一つ覚えてしまえば、ファイルの新規作成、上書き保存、追記保存もできてしまいます。

そのコードとは『Out-File』です。

ファイルの上書き保存

Write-Output "今度の韓国一人旅はロケ地巡りしたい。" | Out-File  "D:\program\test1.txt"

上記ソースコードをそのままコピーしてPowerShellで実行すると、ドライブDのprogramingフォルダにあるtest1.txtファイルに『今度の韓国一人旅はロケ地巡りしたい。』と出力されます。

もし、test1.txtファイルが存在しない場合は、新規作成してファイル出力してくれます。

ちなみにドライブDにprogramingフォルダがない場合は、パスが間違っているということでエラーになります。

ファイルの追記保存

Write-Output "今度の韓国一人旅はロケ地巡りしたい。" | Out-File -Append "D:\programing\test2.txt"

『Out-File』の後に『-Append』を追加しただけで、他はファイルの上書き保存のコードを全く同じ。

これで、ファイルに追記保存が可能です。

もし、test2.txtファイルが存在しない場合には、新規作成してファイル出力してくれます。

スポンサーリンク

ファイルに複数行出力したい場合のPowerShellのソースコード

先ほどお伝えしたのは、ファイルを開いて1行だけ出力するというソースコード。

複数行出力の場合は、先ほどのコードを必要分記述してもいいですが、こんな書き方もありますよということで、ちょっと別のソースコードをご紹介しますね。

こちらがサンプルコードです。

$textfile = "D:\programing\test3.txt"
$file = New-Object System.IO.StreamWriter($textfile, $true, [System.Text.Encoding]::GetEncoding("UTF-8"))
$file.WriteLine("ダッカルビ")
$file.WriteLine("明洞")
$file.WriteLine("食べ歩き")
Write-Host("")
$file.Close()

ざっくり解説すると、

  1. ファイル書き込み用のストリームを開く:New-Object System.IO.StreamWriter()
  2. ファイルに出力する:$file.WriteLine()
  3. ファイルを閉じる:$file.Close()

1のストリームの3つの引数について解説します。

New-Object System.IO.StreamWriter(引数1,引数2,引数3)

引数1:ファイルのフルパス

書き込むファイルの場所をフルパスで指定します。

ここで指定したファイルが存在しなければ、新規作成して保存してくれます。

引数2:上書きか追記かを指定

ここでファイルの上書き保存か追記保存かを指定できます。

指定の仕方は下記の通りです。

  • ファイルの上書き保存:$false
  • ファイルの追記保存:$true

引数3:エンコードの指定

エンコードというのは文字コードのことですね。

ここを適切に指定しないと、日本語文字出録の場合、文字化けしてしまいます。

よく使われるのが、『Shift_JIS(sjis)』か『UTF-8』です。

世界の標準コード規格が『UTF-8』なので、迷ったら『UTF-8』を指定するのがいいかなと思います。

まとめ

それでは今回の記事のまとめです。

まとめ
PowerShellのファイル出力
Write-Output “出力する文字列” | Out-File -Append “ファイルのフルパス”

  • -Appendを削除:ファイルの上書き保存
  • -Append:ファイルの追記保存

複数行のファイル出力

  1. ファイル書き込み用のストリームを開く:New-Object System.IO.StreamWriter()
  2. ファイルに出力する:$file.WriteLine()
  3. ファイルを閉じる:$file.Close()

New-Object System.IO.StreamWriter(引数1,引数2,引数3)

  • 引数1:ファイルのフルパス
  • 引数2:$false(上書き保存)、$true(追記保存)
  • 引数3:エンコード指定

今回の記事が役に立ちましたら幸いです^^

ではでは~ノシ

スポンサーリンク

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*