Import-Csv コマンドレットの使用
CSV ファイルの読み込み
Import-Csv コマンドレットを使用すると、コンマ区切り値ファイル (CSV) のデータを読み取り、そのデータを Windows PowerShell コンソールで表形式で表示できます。たとえば、C:\Scripts\Test.txt というファイルがあり、そのファイルには次のデータが含まれるとします。
Name,Department,Title
Pilar Ackerman,Research,Manager
Jonathan Haas,Finance,Finance Specialist
Ken Myer,Finance,Accountant
画面に表形式でデータを表示しますか。その場合、Import-Csv に開くファイルのパスを続けます。
Import-Csv c:\scripts\test.txt
次に、Windows PowerShell に次のように出力されます。
Name Department Title
---- ---------- -----
Pilar Ackerman Research Manager
Jonathan Haas Finance Finance Specialist
Ken Myer Finance Accountant
すばらしいですね。ただ、もっと楽しみたい場合は...、そうです。もっと楽しみたい場合は、CSV ファイルのインポート以外を実行してみることです。言い方を変えましょう。もう少し楽しみたい場合は、インポートしたデータを Where-Object コマンドレットにパイプ処理します。たとえば、次のコマンドを使用すると、会計 (Finance) 部門に勤務する従業員のみが取得されます。
Import-Csv c:\scripts\test.txt | Where-Object {$_.department -eq "Finance"}
結果のデータセットは次のようになります。
Name Department Title
---- ---------- -----
Jonathan Haas Finance Finance Specialist
Ken Myer Finance Accountant
パイプラインの右側が暗号のように見えるかもしれません。ただし、まったく解釈できないわけではありません。$_ は単純に現在のオブジェクトを示す Windows PowerShell の表記方法です。当然ながら現在のオブジェクトはテキスト ファイル C:\Scripts\Test.txt です。.department は標準的なドット表記方法です。objItem.Name のように表記することで、WMI プロパティを参照する方法と同じです。ここでの目的は、問題のテキスト ファイルについて、Department プロパティ (Department フィールド) 値をチェックするということです。フィールドが Finance に等しい (-eq) 場合、表示します。Finance に等しくない場合、表示しません。
金融部門以外の全従業員のレコードを表示するとします。この場合、次のコマンドと -ne ("等しくない" という意味です) を使用します。
Import-Csv c:\scripts\test.txt | Where-Object {$_.department -ne "Finance"}
このコマンドは以下のデータを返します。
Name Department Title
---- ---------- -----
Pilar Ackerman Research Manager
where 句に複数のアイテムを指定できるでしょうか。はい、できます。2 つの条件を -and または -or で連結するだけです。たとえば、次のコマンドを使用すると、会計部門に勤務する会計士のみが返されます。
Import-Csv c:\scripts\test.txt | Where-Object {$_.department -eq "Finance" -and $_.title -eq "Accountant"}
どういうことでしょうか。つまり、次のような情報が返されるということです。
Name Department Title
---- ---------- -----
Ken Myer Finance Accountant
一方、このコマンドは、調査 (Research) 部門に勤務する従業員か、会計士の一覧を返します。
Import-Csv c:\scripts\test.txt | Where-Object {$_.department -eq "Research" -or $_.title -eq "Accountant"}
このコマンドを実行したときに返される情報については、推測できると思います。
Name Department Title
---- ---------- -----
Pilar Ackerman Research Manager
Ken Myer Finance Accountant
かっこいいですね。
Import-Csv のエイリアス |
---|
|