PowerShell: テキストファイルへの書き込み(上書き・追記)
PowerShellでテキストファイルへ文字列を書き込む場合、 Set-ContentかAdd-Contentコマンドレットを使います。 上書きの場合はSet-Content、追記の場合はAdd-Contentです。
上書き Set-Content
ファイルへ上書きする場合のSet-Contentコマンドレットの書式は次の通りです。
Set-Content ファイルパス 文字列
1番目のパラメータに書き込むファイルパスを指定し、
2番目のパラメータに書き込む内容を指定します。
指定したファイルが存在する場合は上書きし、
ファイルが存在しない場合は新規に作成して書き込みます。
ファイルパスは絶対パス、相対パスのどちらでも可能です。
ファイル名のみを記述した場合はカレントディレクトリが対象となります。
2つのパラメータ名はそれぞれ-Path、-Valueなので次のようにも記述できます。
Set-Content -Path ファイルパス -Value 文字列
文字コードを指定する場合は-Encodeingパラメータで指定します。 指定しない場合、 PowerShellのデフォルト文字コードはUTF16、 日本語PowerShellのデフォルト文字コードはShift-JISです。 現在最も使われているUTF-8を指定する場合は、 次のように「-Encoding」を指定します。
Set-Content ファイルパス 文字列 -Encoding utf8
次のコードはファイル「test.txt」に文字列"Hello"と書き込みます。
Set-Content test.txt "Hello"
ファイル「test.txt」の内容は次の通りです。
Hello
追記 Add-Content
追記の場合も書式に関してはSet-Contentと同じです。
Add-Content ファイルパス 文字列
Add-Contentの場合は「追記」なので、 既存のファイルの末尾に指定した文字列(コンテンツ)を追記します。
次のコードは、先ほど"Hello"と書き込んだファイル「test.txt」に対して Add-Contentを使って"World"と追記します。
Add-Content test.txt "World"
最終的にファイル「test.txt」の内容は次のようになります。
Hello World