#navi(../)
* PowerShellでテキストファイルを1行ずつ読み込むサンプルコード [#r9fc66ae]
PowerShellでテキストファイルを1行ずつ読み込むサンプルコードを2つ紹介します。

#contents
#htmlinsertpcsp(win-top.html,win-sp.html)

* 関連記事 [#ue0e6c4a]
-[[ファイル・フォルダの存在チェック・Test-Pathコマンドレット>PowerShell/ファイル・フォルダの存在チェック・Test-Path]]
-[[PowerShellでテキストファイルの指定した範囲を抽出する・Get-Content>PowerShell/テキストファイルの指定した範囲を抽出する・Get-Content]]
-[[PowerShellでテキストファイルの行数を取得する方法・Get-Content>PowerShell/テキストファイルの行数を取得する方法・Get-Content]]
-[[PowerShellでファイルサイズがゼロのファイルを作成する・New-Item>PowerShell/ファイルサイズがゼロのファイルを作成する・New-Item]]
-[[テキストファイルを1行ずつ読み込むサンプルコード>PowerShell/テキストファイルを1行ずつ読み込むサンプルコード]]

* 使用したテキストファイル [#l8774e1b]
#ref(in.txt)
 sakura tsubaki
 suzuran ajisai
 kosumosu bara

* ファイルを1行ずつ読み込むサンプルコード [#icd4bf3f]
Get-ContentコマンドレットとSystem.IO.StreamReaderを利用した2つのサンプルコードを以下に紹介します。

** Get-Contentを利用したサンプルコード(その1) [#l0c1f324]
以下のサンプルコードは1行毎にstring[]に格納されます。
#ref(read1.ps1)
 $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) [#obb78724]
#ref(read3.ps1)
 $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を利用したサンプルコード [#pdc8d2a0]
以下のサンプルコードは文字コードにシフトJISを指定しSystem.IO.StreamReaderオブジェクトを作成しています。~
あとは、System.IO.StreamReaderオブジェクトを操作し指定したテキストファイルを操作しています。
#ref(read2.ps1)
 $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行ずつ読み込むサンプルコードでした。

#htmlinsertpcsp(win-btm.html,win-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS