PowerShellでテキストファイルを1行ずつ読み込むサンプルコード †
PowerShellでテキストファイルを1行ずつ読み込むサンプルコードを2つ紹介します。
スポンサーリンク
関連記事 †
- ファイル・フォルダの存在チェック・Test-Pathコマンドレット
- PowerShellでテキストファイルの指定した範囲を抽出する・Get-Content
- PowerShellでテキストファイルの行数を取得する方法・Get-Content
- PowerShellでファイルサイズがゼロのファイルを作成する・New-Item
- テキストファイルを1行ずつ読み込むサンプルコード
使用したテキストファイル †
sakura tsubaki suzuran ajisai kosumosu bara
ファイルを1行ずつ読み込むサンプルコード †
Get-ContentコマンドレットとSystem.IO.StreamReaderを利用した2つのサンプルコードを以下に紹介します。
Get-Contentを利用したサンプルコード(その1) †
以下のサンプルコードは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
Get-Contentを利用したサンプルコード(その2) †
$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
System.IO.StreamReaderを利用したサンプルコード †
以下のサンプルコードは文字コードにシフト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行ずつ読み込むサンプルコードでした。