PowerShellでテキストファイルを1行ずつ読み込むサンプルコードを2つ紹介します。
sakura tsubaki suzuran ajisai kosumosu bara
Get-ContentコマンドレットとSystem.IO.StreamReaderを利用した2つのサンプルコードを以下に紹介します。
以下のサンプルコードは1行毎にstring[]に格納されます。
$f = (Get-Content in.txt) -as [string[]]
$i=1
foreach ($l in $f) {
Write-Host $i : $l
$i++
}
上記のサンプルコードを実行した時の出力です。
PS C:\work> C:\work\read1.ps1 1 : sakura tsubaki 2 : suzuran ajisai 3 : kosumosu bara
$i=1
foreach ($l in Get-Content in.txt) {
Write-Host $i : $l
$i++
}
上記のサンプルコードを実行した時の出力です。
PS C:\work> C:\work\read3.ps1 1 : sakura tsubaki 2 : suzuran ajisai 3 : kosumosu bara
以下のサンプルコードは文字コードにシフトJISを指定しSystem.IO.StreamReaderオブジェクトを作成しています。
あとは、System.IO.StreamReaderオブジェクトを操作し指定したテキストファイルを操作しています。
$i=1
$txt = "c:\work\in.txt"
$enc = [Text.Encoding]::GetEncoding("Shift_JIS")
$fh = New-Object System.IO.StreamReader($txt, $enc)
while (($l = $fh.ReadLine()) -ne $null) {
Write-Host $i : $l
$i++
}
上記のサンプルコードを実行した時の出力です。
PS C:\work> C:\work\read2.ps1 1 : sakura tsubaki 2 : suzuran ajisai 3 : kosumosu bara
以上、PowerShellでテキストファイルを1行ずつ読み込むサンプルコードでした。