PowerShell: テキストファイルを一括で読み込んで変数に格納
PowerShellでテキストファイルを読み込む場合、 Get-Contentコマンドレットを使います。 Get-Contentで取得した値を変数に格納すると、 デフォルトでは文字列配列に1行ずつ格納されます。 これを文字列として一括で取得するには -RAWオプション(スイッチパラメータ)を付けます。
書式
Get-Content ファイルパス -RAW [-Encoding 文字コード]
文字コードを指定する場合は-Encodingパラメータで指定します。
例として次のような3行(改行を含めて12文字)のファイル「test.txt」 の内容を取得してみます。
test.txt
1行目 2行目 3行目
次のコードはファイル「test.txt」の内容を一括で取得して 変数$contentsに格納しています。
$contents = Get-Content test.txt -RAW # 型 $contents.GetType().Name # String # 文字数 $contents.Length # 12
GetType()で型名を取得するとStringと表示されるので
文字列型となっています。
文字数は4文字×3行で12です。文字数には改行コード(LF)も含まれています。
このように-RAWオプションを付加するだけで
一括でファイルの内容を取得できます。
-RAWオプションを付けずにデフォルトの状態で Get-Contentコマンドレットを実行した結果も紹介します。 この場合は1行ずつ文字列配列として格納されます。
$contents = Get-Content .\test.txt $contents.GetType() # System.Array $contents.Length # 3
GetType()の結果はSystem.Array(配列)となっています。 Lengthプロパティの値は3で、 ファイルの行数と一致しています。