PowerShell テキストファイルの読み書き

PowerShellのテキストファイルの書き込みと読み込みのサンプルです。

目次

サンプル ファイルを読み込む(Get-Content)
ファイルを読み込み配列にする / ファイルを読み込み文字列にする
  新規でファイルに書き込む(Set-Content)
ファイルに書き込む(Shift-JIS) / ファイルに書き込む(UTF8のBOM付き)
ファイルに書き込む(UTF-16LE) / ファイルに書き込む(UTF8のBOM無し)
文字列の改行で`r`n以外の方法
追記でファイルに書き込む(Add-Content)

ファイルを読み込む(Get-Content)

変数 = Get-Content ファイルパス [-Raw]
  • ファイルの文字を読み込み配列を取得します。1行が1要素になります。
  • 引数の-Rawをつけると文字列を取得します。

ファイルを読み込み配列にする

$arr = Get-Content "d:\test1\test1.txt"

foreach ($str in $arr) {
  Write-Host $str
}

4行目は、改行ごとに出力されます。

 

ファイルを読み込み文字列にする

$str = Get-Content "d:\test1\test1.txt" -Raw

Write-Host $str

3行目は、改行の箇所は改行で出力されます。

 

新規でファイルに書き込む(Set-Content)

Set-Content [-Path] ファイルパス [-Value] 文字列 [-Encoding 文字コード]
  • ファイルに文字を書き込みます。
  • ファイルが存在しない場合は、新規でファイルが作成されます。
  • 文字コードの指定をしない場合は、Shift-JISになります。

ファイルに書き込む(Shift-JIS)

Set-Content -Path "d:\test1\test2.txt" "あいうえお`r`nかきくけこ"

Encodingの指定がない場合はShift-JISになります。`r`nは改行になります。

 

ファイルに書き込む(UTF8のBOM付き)

Set-Content -Path "d:\test1\test2.txt" "あいうえお" -Encoding UTF8

上記は文字コードにUTF8を指定しています。文字コードはUTF8のBOM付きになります。

 

ファイルに書き込む(UTF-16LE)

"あいうえお`r`nかきくけこ" > "d:\test1\test2.txt" 

上記の書き方の場合、文字コードはUTF-16LEになります。

 

ファイルに書き込む(UTF8のBOM無し)

$str = "あいうえお`r`nかきくけこ"

$utf8NoBom = New-Object System.Text.UTF8Encoding $false

[System.IO.File]::WriteAllLines("d:\test1\test2.txt", $str, $utf8NoBom)

3行目は、UTF8Encodingオブジェクトのコンストラクタの引数にfalseを指定することでBom無しにしています。

 

文字列の改行で`r`n以外の方法

$newLine = [System.Environment]::NewLine

Set-Content -Path "d:\test1\test2.txt" ("AB" + $newLine + "CD")

[System.Environment]::NewLineは改行になります。

 

追記でファイルに書き込む(Add-Content)

Add-Content [-Path] ファイルパス [-Value] 文字列 
  • ファイルに文字を追記ます。

ファイルに書き込むサンプル

Add-Content -Path "d:\test1\test2.txt" "あいうえお"

追記分は、改行されて追記されます。

 

以下の書き方でも追記になりますが、文字コードはUTF-16LEになります。

"あいうえお" >> "d:\test1\test2.txt" 

関連の記事

PowerShell if文のサンプル(ISE)
PowerShell for文 処理を繰り返すサンプル

△上に戻る