PowerShellのImport-Csvコマンドを徹底解説

PowerShellはWindowsの管理を効率化するための強力なツールであり、その中でもImport-Csvコマンドはデータ処理において非常に便利です。本記事では、Import-Csvの基本的な使い方から応用例までを詳しく解説し、実際の使用例を交えて説明します。CSVファイルをPowerShellで扱う方法を学ぶことで、業務の自動化やデータ処理の効率を飛躍的に向上させることができます。

Import-Csvとは?

Import-Csvは、CSV(カンマ区切り)ファイルをPowerShellのオブジェクトとして読み込むためのコマンドです。通常、CSVデータをプログラムで扱う場合、文字列として読み込み、分割して処理する必要がありますが、PowerShellのImport-Csvを使用すると、ヘッダーをプロパティ名としてオブジェクトに変換するため、より直感的にデータを操作できます。

基本的な構文

Import-Csv -Path <ファイルパス>

例えば、以下のようなusers.csvファイルがあるとします。

Name,Age,Email
Alice,25,alice@example.com
Bob,30,bob@example.com

このCSVファイルをImport-Csvで読み込むと、PowerShellのオブジェクトとして扱えるようになります。

$users = Import-Csv -Path "C:\data\users.csv"
$users

出力結果:

Name   Age Email               
----   --- -----               
Alice  25  alice@example.com   
Bob    30  bob@example.com     

Import-Csvのオプション

Import-Csvコマンドには、さまざまなオプションが用意されています。

-Delimiter(区切り文字の指定)

デフォルトではカンマ(,)区切りですが、セミコロン(;)区切りのファイルを読み込む場合は、-Delimiterを指定します。

Import-Csv -Path "C:\data\users.csv" -Delimiter ";"

-Encoding(エンコーディングの指定)

CSVファイルのエンコーディングを指定できます。たとえば、UTF-8のファイルを読み込む場合:

Import-Csv -Path "C:\data\users.csv" -Encoding UTF8

-Header(ヘッダーの指定)

CSVファイルにヘッダー行がない場合、-Headerオプションを使用してカラム名を指定できます。

Import-Csv -Path "C:\data\users.csv" -Header "Name", "Age", "Email"

Import-Csvの活用例

1. CSVデータをフィルタリング

Where-Objectを使って、特定の条件に合うデータを抽出できます。

$users = Import-Csv -Path "C:\data\users.csv"
$filtered = $users | Where-Object { $_.Age -gt 25 }
$filtered

出力:

Name   Age Email               
----   --- -----               
Bob    30  bob@example.com     

2. CSVデータを並び替え

Sort-Objectを使用して、データを特定のカラムで並べ替えます。

$users | Sort-Object Age

3. CSVデータをエクスポート(Export-Csvとの連携)

データを処理した後、新しいCSVファイルとして保存することも可能です。

$filtered | Export-Csv -Path "C:\data\filtered_users.csv" -NoTypeInformation

4. CSVデータをPowerShellスクリプトで自動処理

以下のスクリプトは、指定された年齢以上のユーザーを抽出し、新しいCSVに保存する例です。

param (
    [string]$InputFile = "C:\data\users.csv",
    [string]$OutputFile = "C:\data\filtered_users.csv",
    [int]$AgeLimit = 25
)

$users = Import-Csv -Path $InputFile
$filtered = $users | Where-Object { $_.Age -ge $AgeLimit }
$filtered | Export-Csv -Path $OutputFile -NoTypeInformation

まとめ

Import-Csvコマンドを活用すると、PowerShellでCSVデータを簡単に読み込み、フィルタリングやソート、エクスポートなどの処理を効率的に行うことができます。特に業務で大量のデータを扱う場合、スクリプトと組み合わせることで作業の自動化が可能になります。ぜひ実際に試して、活用してみてください!

タイトルとURLをコピーしました