SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows PowerShell 活用編

Windows PowerShell 活用編(2)
ファイル操作 2

ファイルの読み込みと書き込み

ダウンロード 都道府県.txt (378.0 B)

指定した行を取得する

 Get-Contentコマンドレットは配列を返します。

 この配列には各行のデータが代入されているため、下記のように指定した行のデータを取得することができます。

 下記では、$Lines変数へ都道府県.txtの内容を読み込んだあと、要素番号が12の行(0から数えるので13行目を指します)のデータを取得します。

PS> $Lines = Get-Content C:\Work\都道府県.txt
PS> $Lines[12]

 このことを利用して、下記のようにすると行番号を付加することができます

PS> $Lines = Get-Content C:\Work\都道府県.txt
PS > for ( $i = 1; $i -le $Lines.Length; $i++ )
>> {
>> ($i.ToString("0#:") + $Lines[$i - 1])
>> }
>>

指定した行数だけ読み取る

 ファイルの先頭から数行だけを確認したい場面に遭遇する場合があります。このような場合は、-totalCountパラメータを使用します。このパラメータの既定値は-1ですべての行を取得するようになっています。

 先頭の5行だけを確認する場合は下記のようにします。

PS C:\> Get-Content C:\Work\都道府県.txt -TotalCount 5			

1度に読み出される行数を指定する

 Get-Contentコマンドレットは1度にすべての行を読み込みます。このことはパイプラインで次のコマンドレットへデータを引き渡すときに大きく影響してきます。

 大きなファイルを1度に読み取ることは、スクリプトの速度に影響を与えるとともに、リソースを消費することを意味します。

 -ReadCountパラメータを使用すると、1度に読み取る行数を指定することが可能です。

 下記は-ReadCountパラメータに5を指定し、1度に読み取る行数を5行としています。このため、パイプラインを通して渡されるデータは5行ずつとなります。

PS> Get-Content C:\Work\都道府県.txt -ReadCount 5 | ForEach-Object { "---" + $_ }

エンコードを指定したファイルの読み込み

 -Encodingパラメータを使用すると、エンコードを指定してファイルを読み込むことができます。

 指定可能な文字コードには、Unknown, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Asciiがあります。既定値はString(Shift-Jis)となっています。

 下記は都道府県.txtの読み込みにString(Shift-Jis)を指定しています。

PS> Get-Content C:\Work\都道府県.txt -Encoding String

次のページ
ファイルの書き込み

この記事は参考になりましたか?

Windows PowerShell 活用編連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3395 2009/01/08 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー