PowerShell でデータを CSV にエクスポートする
-
Export-CSV
PowerShell コマンドレットを使用してデータを CSV にエクスポートする -
ConvertTo-CSV
PowerShell コマンドレットを使用してデータを CSV にエクスポートする
CSV ファイルは、コンテンツに特定の形式が適用された、区切られたテキストファイルです。次の例に示すように、形式は単純なテーブル構造に非常に似ています。
例えば、
Name, NIC, Phone
John, 394829G, +671392392
Risabh, 32909340J, +12328833
CSV
は、Comma Separated Values
の短縮形です。ファイルタイプ(CSV)が示すように、コンマを使用してデータ値を区切ります。データを含む CSV ファイルを生成するために利用できるさまざまなツールがあります。
この記事では、PowerShell でデータを CSV ファイルにエクスポートする方法について説明します。
Export-CSV
PowerShell コマンドレットを使用してデータを CSV にエクスポートする
Export-CSV
は、CSV 形式でデータをエクスポートするために使用できる PowerShell コマンドレットの 1つです。このコマンドレットは比較的使いやすく、いくつかのプロパティも利用できます。
Export-CSV
コマンドレット構文
<data_objects/content> | Export-CSV -Path <path>
<data_objects/content>
:Export-CSV コマンドレットにフィードされるデータオブジェクト/コンテンツ。Export-CSV
:CSV 形式でデータをエクスポートするコマンドレット。-Path
:csv ファイルを保存するパス。
例 01
Get-Process
コマンドレットを使用していくつかのデータオブジェクトを返し、それらを Export-CSV
コマンドレットにフィードして CSV 形式でエクスポートできます。
Get-Process
出力:
Handles NPM(k) PM(K) WS(K) CPU(s) Id SI ProcessName
313 14 3712 10756 7.69 39500 0 ApplicationFrameHost
507 30 22864 22836 2.11 18156 2 armsvc
複数のプロセスオブジェクトが返される場合があります。パイプ (|)
演算子を使用して、返されたオブジェクトを Export-CSV
コマンドレットにフィードできます。次に、Get-Content
コマンドレットを使用して、エクスポートされた CSV コンテンツを確認できます。
Get-Process | Export-CSV -Path .\ProcessObjects.csv
Get-Content -Path .\ProcessObjects.csv
出力:
"ProcessName","SI","Handles","VM","WS","PM","NPM", .....
"armsvc","2","511","2203597099008","35364864","21979136","30048", ...
"xyz","0","501","299393939","9982824","0021000","393393", ...
Export-CSV
コマンドレットのデフォルトの動作を変更するために使用できる便利なプロパティはほとんどありません。
例 02
Get-Process | Export-CSV -Path .\ProcessObjects.csv -Delimiter ';'
Get-Content -Path .\ProcessObjects.csv
出力:
"ProcessName";"SI";"Handles";"VM";"WS";"PM";"NPM"; .....
"armsvc";"2";"511";"2203597099008";"35364864";"21979136";"30048"; ...
-Delimiter
オプションは、区切り文字をデフォルトの、
から指定された記号に変更します。
ConvertTo-CSV
PowerShell コマンドレットを使用してデータを CSV にエクスポートする
ConvertTo-CSV
コマンドレットは、上記の Export-CSV
コマンドレットとほぼ同じです。2つの違いは、Export-csv
コマンドレットが CSV 文字列をファイルに保存することだけですが、ConvertTo-CSV
の場合はそうではありません。カンマ区切りの値の文字列を返すだけです。
ConvertTo-CSV
コマンドレット構文
<data_objects/content> | ConvertTo-CSV
<data_objects/content>
:ConvertTo-CSV
コマンドレットにフィードされるデータオブジェクト/コンテンツ。ConvertTo-CSV
:CSV 文字列を返すためのコマンドレット。
例
Get-Process | ConvertTo-Csv
出力:
"ProcessName","SI","Handles","VM","WS","PM","NPM", .....
"armsvc","2","511","2203597099008","35364864","21979136","30048", ...
"xyz","0","501","299393939","9982824","0021000","393393", ...p
したがって、Export-CSV
コマンドレットと ConvertTo-CSV
コマンドレットはどちらも、PowerShell を使用して CSV 形式のデータを生成するための便利なツールです。
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.