Export-Csv
オブジェクトを一連の文字区切り値 (CSV) 文字列に変換し、文字列をファイルに保存します。
構文
Export-Csv
-InputObject <PSObject>
[[-Path] <String>]
[-LiteralPath <String>]
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-Append]
[[-Delimiter] <Char>]
[-IncludeTypeInformation]
[-NoTypeInformation]
[-QuoteFields <String[]>]
[-UseQuotes <QuoteKind>]
[-NoHeader]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Export-Csv
-InputObject <PSObject>
[[-Path] <String>]
[-LiteralPath <String>]
[-Force]
[-NoClobber]
[-Encoding <Encoding>]
[-Append]
[-UseCulture]
[-IncludeTypeInformation]
[-NoTypeInformation]
[-QuoteFields <String[]>]
[-UseQuotes <QuoteKind>]
[-NoHeader]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Export-CSV
コマンドレットは、送信するオブジェクトの CSV ファイルを作成します。 各オブジェクトは、オブジェクトのプロパティ値の文字区切りのリストを含む行です。 Export-CSV
コマンドレットを使用すると、スプレッドシートを作成し、CSV ファイルを入力として受け入れるプログラムとデータを共有できます。
オブジェクトを Export-CSV
コマンドレットに送信する前に書式設定しないでください。 Export-CSV
が書式設定されたオブジェクトを受け取る場合、CSV ファイルにはオブジェクトプロパティではなくフォーマットプロパティが含まれます。 オブジェクトの選択したプロパティのみをエクスポートするには、 Select-Object
コマンドレットを使用します。
例
例 1: プロセス プロパティを CSV ファイルにエクスポートする
次の使用例は、特定のプロパティを持つ Process オブジェクトを選択し、そのオブジェクトを CSV ファイルにエクスポートします。
Get-Process -Name WmiPrvSE |
Select-Object -Property BasePriority,Id,SessionId,WorkingSet |
Export-Csv -Path .\WmiData.csv -NoTypeInformation
Import-Csv -Path .\WmiData.csv
BasePriority Id SessionId WorkingSet
------------ -- --------- ----------
8 976 0 20267008
8 2292 0 36786176
8 3816 0 30351360
8 8604 0 15011840
8 10008 0 8830976
8 11764 0 14237696
8 54632 0 9502720
Get-Process
コマンドレットは、Process オブジェクトを取得します。 Name パラメーターは、WmiPrvSE プロセス オブジェクトのみを含むように出力をフィルター処理します。 プロセス オブジェクトは、パイプラインから Select-Object
コマンドレットに送信されます。 Select-Object
では、 Property パラメーターを使用して、プロセス オブジェクトのプロパティのサブセットを選択します。 プロセス オブジェクトは、パイプラインから Export-Csv
コマンドレットに送信されます。 Export-Csv
は、プロセス オブジェクトを一連の CSV 文字列に変換します。 Path パラメーターは、WmiData.csv
ファイルを現在のディレクトリに保存することを指定します。 NoTypeInformation パラメーターは、csv 出力から#TYPE情報ヘッダーを削除します。PowerShell 6 では必要ありません。 Import-Csv
コマンドレットは、Path パラメーターを使用して、現在のディレクトリにあるファイルを表示します。
例 2: プロセスをコンマ区切りファイルにエクスポートする
この例では、 Process オブジェクトを取得し、そのオブジェクトを CSV ファイルにエクスポートします。
Get-Process | Export-Csv -Path .\Processes.csv -NoTypeInformation
Get-Content -Path .\Processes.csv
"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","511","2203597099008","35364864","21979136","30048", ...
Get-Process
コマンドレットは、Process オブジェクトを取得します。 プロセス オブジェクトは、パイプラインから Export-Csv
コマンドレットに送信されます。 Export-Csv
は、プロセス オブジェクトを一連の CSV 文字列に変換します。 Path パラメーターは、Processes.csv
ファイルを現在のディレクトリに保存することを指定します。 NoTypeInformation パラメーターは、csv 出力から#TYPE情報ヘッダーを削除します。PowerShell 6 では必要ありません。 Get-Content
コマンドレットは、Path パラメーターを使用して、現在のディレクトリにあるファイルを表示します。
例 3: セミコロンで区切られたファイルにプロセスをエクスポートする
この例では、 Process オブジェクトを取得し、セミコロン区切り記号でファイルにオブジェクトをエクスポートします。
Get-Process | Export-Csv -Path .\Processes.csv -Delimiter ';' -NoTypeInformation
Get-Content -Path .\Processes.csv
"Name";"SI";"Handles";"VM";"WS";"PM";"NPM";"Path";"Parent";"Company";"CPU";"FileVersion"; ...
"ApplicationFrameHost";"4";"509";"2203595321344";"34807808";"21770240";"29504"; ...
Get-Process
コマンドレットは、Process オブジェクトを取得します。 プロセス オブジェクトは、パイプラインから Export-Csv
コマンドレットに送信されます。 Export-Csv
は、プロセス オブジェクトを一連の CSV 文字列に変換します。 Path パラメーターは、Processes.csv
ファイルを現在のディレクトリに保存することを指定します。 Delimiter パラメーターは、文字列値を区切るセミコロンを指定します。 NoTypeInformation パラメーターは、csv 出力から#TYPE情報ヘッダーを削除します。PowerShell 6 では必要ありません。 Get-Content
コマンドレットは、Path パラメーターを使用して、現在のディレクトリにあるファイルを表示します。
例 4: 現在のカルチャのリスト区切り記号を使用してプロセスをエクスポートする
この例では、 Process オブジェクトを取得し、オブジェクトをファイルにエクスポートします。 区切り記号は、現在のカルチャのリスト区切り記号です。
(Get-Culture).TextInfo.ListSeparator
Get-Process | Export-Csv -Path .\Processes.csv -UseCulture -NoTypeInformation
Get-Content -Path .\Processes.csv
"Name","SI","Handles","VM","WS","PM","NPM","Path","Parent","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","511","2203597099008","35364864","21979136","30048", ...
Get-Culture
コマンドレットは、入れ子になったプロパティ TextInfo および ListSeparator を使用して、現在のカルチャの既定のリスト区切り記号を表示します。 Get-Process
コマンドレットは、Process オブジェクトを取得します。 プロセス オブジェクトは、パイプラインから Export-Csv
コマンドレットに送信されます。 Export-Csv
は、プロセス オブジェクトを一連の CSV 文字列に変換します。 Path パラメーターは、Processes.csv
ファイルを現在のディレクトリに保存することを指定します。 UseCulture パラメーターは、現在のカルチャの既定のリスト区切り記号を区切り記号として使用します。 NoTypeInformation パラメーターは、csv 出力から#TYPE情報ヘッダーを削除します。PowerShell 6 では必要ありません。 Get-Content
コマンドレットは、Path パラメーターを使用して、現在のディレクトリにあるファイルを表示します。
例 5: 型情報を含むプロセスをエクスポートする
この例では、 #TYPE ヘッダー情報を CSV ファイルに含める方法について説明します。 #TYPE ヘッダーは、PowerShell 6.0 より前のバージョンでは既定値です。
Get-Process | Export-Csv -Path .\Processes.csv -IncludeTypeInformation
Get-Content -Path .\Processes.csv
#TYPE System.Diagnostics.Process
"Name","SI","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion", ...
"ApplicationFrameHost","4","507","2203595001856","35139584","20934656","29504", ...
Get-Process
コマンドレットは、Process オブジェクトを取得します。 プロセス オブジェクトは、パイプラインから Export-Csv
コマンドレットに送信されます。 Export-Csv
は、プロセス オブジェクトを一連の CSV 文字列に変換します。 Path パラメーターは、Processes.csv
ファイルを現在のディレクトリに保存することを指定します。 IncludeTypeInformationには#TYPE情報ヘッダーが CSV 出力に含まれています。 Get-Content
コマンドレットは、Path パラメーターを使用して、現在のディレクトリにあるファイルを表示します。
例 6: CSV ファイルにオブジェクトをエクスポートして追加する
この例では、オブジェクトを CSV ファイルにエクスポートし、 Append パラメーターを使用して既存のファイルにオブジェクトを追加する方法について説明します。
$AppService = (Get-Service -DisplayName *Application* | Select-Object -Property DisplayName, Status)
$AppService | Export-Csv -Path .\Services.Csv -NoTypeInformation
Get-Content -Path .\Services.Csv
$WinService = (Get-Service -DisplayName *Windows* | Select-Object -Property DisplayName, Status)
$WinService | Export-Csv -Path .\Services.csv -NoTypeInformation -Append
Get-Content -Path .\Services.Csv
"DisplayName","Status"
"Application Layer Gateway Service","Stopped"
"Application Identity","Running"
"Windows Audio Endpoint Builder","Running"
"Windows Audio","Running"
"Windows Event Log","Running"
Get-Service
コマンドレットは、サービス オブジェクトを取得します。 DisplayName パラメーターは、Application という単語を含むサービスを返します。 サービス オブジェクトは、パイプラインから Select-Object
コマンドレットに送信されます。 Select-Object
では、 Property パラメーターを使用して、 DisplayName および Status プロパティを指定します。 $AppService
変数には、オブジェクトが格納されます。
$AppService
オブジェクトは、パイプラインから Export-Csv
コマンドレットに送信されます。 Export-Csv
は、サービス オブジェクトを一連の CSV 文字列に変換します。 Path パラメーターは、Services.csv
ファイルを現在のディレクトリに保存することを指定します。 NoTypeInformation パラメーターは、csv 出力から#TYPE情報ヘッダーを削除します。PowerShell 6 では必要ありません。 Get-Content
コマンドレットは、Path パラメーターを使用して、現在のディレクトリにあるファイルを表示します。
Get-Service
コマンドレットとSelect-Object
コマンドレットは、Windows という単語を含むサービスに対して繰り返されます。 $WinService
変数には、サービス オブジェクトが格納されます。 Export-Csv
コマンドレットは、Append パラメーターを使用して、$WinService
オブジェクトを既存のServices.csv
ファイルに追加することを指定します。 Get-Content
コマンドレットが繰り返され、追加されたデータを含む更新されたファイルが表示されます。
例 7: パイプライン内の Format コマンドレットによって予期しない結果が作成される
この例では、パイプライン内で format コマンドレットを使用しないことが重要である理由を示します。 予期しない出力が受信されたら、パイプライン構文のトラブルシューティングを行います。
Get-Date | Select-Object -Property DateTime, Day, DayOfWeek, DayOfYear |
Export-Csv -Path .\DateTime.csv -NoTypeInformation
Get-Content -Path .\DateTime.csv
"DateTime","Day","DayOfWeek","DayOfYear"
"Wednesday, January 2, 2019 14:59:34","2","Wednesday","2"
Get-Date | Format-Table -Property DateTime, Day, DayOfWeek, DayOfYear |
Export-Csv -Path .\FTDateTime.csv -NoTypeInformation
Get-Content -Path .\FTDateTime.csv
"ClassId2e4f51ef21dd47e99d3c952918aff9cd","pageHeaderEntry","pageFooterEntry","autosizeInfo", ...
"033ecb2bc07a4d43b5ef94ed5a35d280",,,,"Microsoft.PowerShell.Commands.Internal.Format. ...
"9e210fe47d09416682b841769c78b8a3",,,,,
"27c87ef9bbda4f709f6b4002fa4af63c",,,,,
"4ec4f0187cb04f4cb6973460dfe252df",,,,,
"cf522b78d86c486691226b40aa69e95c",,,,,
Get-Date
コマンドレットは、DateTime オブジェクトを取得します。 オブジェクトは、パイプラインから Select-Object
コマンドレットに送信されます。 Select-Object
では、 Property パラメーターを使用して、オブジェクト プロパティのサブセットを選択します。 オブジェクトは、パイプラインから Export-Csv
コマンドレットに送信されます。 Export-Csv
は、オブジェクトを CSV 形式に変換します。 Path パラメーターは、DateTime.csv
ファイルを現在のディレクトリに保存することを指定します。 NoTypeInformation パラメーターは、csv 出力から#TYPE情報ヘッダーを削除します。PowerShell 6 では必要ありません。 Get-Content
コマンドレットは、Path パラメーターを使用して、現在のディレクトリにある CSV ファイルを表示します。
パイプライン内で Format-Table
コマンドレットを使用してプロパティを選択すると、予期しない結果が受信されます。 Format-Table
は、DateTime オブジェクトではなく、Export-Csv
コマンドレットにテーブル形式オブジェクトを送信します。 Export-Csv
は、テーブル形式オブジェクトを一連の CSV 文字列に変換します。 Get-Content
コマンドレットは、テーブル形式オブジェクトを含む CSV ファイルを表示します。
例 8: Force パラメーターを使用して読み取り専用ファイルを上書きする
この例では、空の読み取り専用ファイルを作成し、 Force パラメーターを使用してファイルを更新します。
New-Item -Path .\ReadOnly.csv -ItemType File
Set-ItemProperty -Path .\ReadOnly.csv -Name IsReadOnly -Value $true
Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation
Export-Csv : Access to the path 'C:\ReadOnly.csv' is denied.
At line:1 char:15
+ Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (:) [Export-Csv], UnauthorizedAccessException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ExportCsvCommand
Get-Process | Export-Csv -Path .\ReadOnly.csv -NoTypeInformation -Force
Get-Content -Path .\ReadOnly.csv
"Name";"SI";"Handles";"VM";"WS";"PM";"NPM";"Path";"Parent";"Company";"CPU";"FileVersion"; ...
"ApplicationFrameHost";"4";"509";"2203595321344";"34807808";"21770240";"29504"; ...
New-Item
コマンドレットは、Path パラメーターと ItemType パラメーターを使用して、現在のディレクトリにReadOnly.csv
ファイルを作成します。 Set-ItemProperty
コマンドレットは、Name パラメーターと Value パラメーターを使用して、ファイルの IsReadOnly プロパティを true に変更します。 Get-Process
コマンドレットは、Process オブジェクトを取得します。 プロセス オブジェクトは、パイプラインから Export-Csv
コマンドレットに送信されます。
Export-Csv
は、プロセス オブジェクトを一連の CSV 文字列に変換します。 Path パラメーターは、ReadOnly.csv
ファイルを現在のディレクトリに保存することを指定します。 NoTypeInformation パラメーターは、csv 出力から#TYPE情報ヘッダーを削除します。PowerShell 6 では必要ありません。 アクセスが拒否されたため、ファイルが書き込まれていないことが出力に示されます。
Force パラメーターが Export-Csv
コマンドレットに追加され、エクスポートがファイルに書き込まれるよう強制されます。 Get-Content
コマンドレットは、Path パラメーターを使用して、現在のディレクトリにあるファイルを表示します。
例 9: Force パラメーターを Append と共に使用する
この例では、 Force および Append パラメーターの使用方法を示します。 これらのパラメーターを組み合わせると、不一致のオブジェクト プロパティを CSV ファイルに書き込むことができます。
$Content = [PSCustomObject]@{Name = 'PowerShell'; Version = '7.0'}
$Content | Export-Csv -Path .\ParmFile.csv -NoTypeInformation
$AdditionalContent = [PSCustomObject]@{Name = 'Windows PowerShell'; Edition = 'Desktop'}
$AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append
Export-Csv : Cannot append CSV content to the following file: ParmFile.csv.
The appended object does not have a property that corresponds to the following column:
Version. To continue with mismatched properties, add the -Force parameter, and then retry
the command.
At line:1 char:22
+ $AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (Version:String) [Export-Csv], InvalidOperationException
+ FullyQualifiedErrorId : CannotAppendCsvWithMismatchedPropertyNames,Microsoft.PowerShell. ...
$AdditionalContent | Export-Csv -Path .\ParmFile.csv -NoTypeInformation -Append -Force
Import-Csv -Path .\ParmFile.csv
Name Version
---- -------
PowerShell 7.0
Windows PowerShell
式は、Name プロパティと Version プロパティを使用してPSCustomObjectを作成します。 値は、 $Content
変数に格納されます。 $Content
変数は、パイプラインから Export-Csv
コマンドレットに送信されます。 Export-Csv
は、 Path パラメーターを使用し、 ParmFile.csv
ファイルを現在のディレクトリに保存します。 NoTypeInformation パラメーターは、csv 出力から#TYPE情報ヘッダーを削除します。PowerShell 6 では必要ありません。
別の式では、Name プロパティと Edition プロパティを使用してPSCustomObject を作成します。 値は、 $AdditionalContent
変数に格納されます。 $AdditionalContent
変数は、パイプラインから Export-Csv
コマンドレットに送信されます。 Append パラメーターを使用して、ファイルにデータを追加します。 Version と Edition の間にプロパティ名の不一致があるため、追加が失敗します。
Export-Csv
コマンドレット Force パラメーターを使用して、エクスポートを強制的にファイルに書き込みます。 Edition プロパティは破棄されます。 Import-Csv
コマンドレットは、Path パラメーターを使用して、現在のディレクトリにあるファイルを表示します。
例 10: 2 つの列を囲む引用符で囲まれた CSV にエクスポートする
次の使用例は、 DateTime オブジェクトを CSV 文字列に変換します。
Get-Date | Export-Csv -QuoteFields "DateTime","Date" -Path .\FTDateTime.csv
Get-Content -Path .\FTDateTime.csv
DisplayHint,"DateTime","Date",Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:27:34 AM","8/22/2019 12:00:00 AM",22,Thursday,234,11,Local,569,27,8,34,637020700545699784,11:27:34.5699784,2019
例 11: 必要な場合にのみ引用符で囲まれた CSV にエクスポートする
次の使用例は、 DateTime オブジェクトを CSV 文字列に変換します。
Get-Date | Export-Csv -UseQuotes AsNeeded -Path .\FTDateTime.csv
Get-Content -Path .\FTDateTime.csv
DisplayHint,DateTime,Date,Day,DayOfWeek,DayOfYear,Hour,Kind,Millisecond,Minute,Month,Second,Ticks,TimeOfDay,Year
DateTime,"Thursday, August 22, 2019 11:31:00 AM",8/22/2019 12:00:00 AM,22,Thursday,234,11,Local,713,31,8,0,637020702607132640,11:31:00.7132640,2019
例 12: ハッシュテーブルを CSV に変換する
PowerShell 7.2 以降では、CSV にハッシュテーブルをエクスポートすると、最初のハッシュテーブルのキーがシリアル化され、csv ファイル出力のヘッダーとして使用されます。
$person1 = @{
Name = 'John Smith'
Number = 1
}
$person2 = @{
Name = 'Jane Smith'
Number = 1
}
$allPeople = $person1, $person2
$allPeople | Export-Csv -Path .\People.csv
Get-Content -Path .\People.csv
"Name","Number"
"John Smith","1"
"Jane Smith","2"
例 13: 追加のプロパティを使用してハッシュテーブルを CSV に変換する
PowerShell 7.2 以降では、 Add-Member
または Select-Object
で追加のプロパティが追加されたハッシュテーブルをエクスポートすると、追加のプロパティも CSV ファイルのヘッダーとして追加されます。
$allPeople | Add-Member -Name ExtraProp -Value 42 -MemberType NoteProperty
$allPeople | Export-Csv -Path .\People.csv
Get-Content -Path .\People.csv
"Name","Number","ExtraProp"
"John Smith","1","42"
"Jane Smith","2","42"
各ハッシュテーブルには、Add-Member
によって追加ExtraProp
という名前のプロパティがあり、CSV にエクスポートされます。 CSV ファイルの出力 ExtraProp
ヘッダーになっていることがわかります。
追加されたプロパティにハッシュテーブルのキーとして same 名がある場合、キーが優先され、キーのみが CSV にエクスポートされます。
パラメーター
-Append
指定したファイルの末尾に CSV 出力 Export-CSV
追加するには、このパラメーターを使用します。 このパラメーターを指定しないと、 Export-CSV
は警告なしでファイルの内容を置き換えます。
このパラメーターは Windows PowerShell 3.0 で導入されました。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Delimiter
プロパティの値を区切る区切り記号を指定します。 既定値はコンマ (,
) です。 コロン (:
) などの文字を入力します。 セミコロン (;
) を指定するには、引用符で囲みます。
型: | Char |
配置: | 1 |
規定値: | comma (,) |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Encoding
エクスポートされた CSV ファイルのエンコード方式を指定します。 既定値は utf8NoBOM
です。
このパラメーターに使用できる値は次のとおりです。
ascii
: ASCII (7 ビット) 文字セットのエンコードを使用します。ansi
: 現在のカルチャの ANSI コード ページのエンコードを使用します。 このオプションが追加されましたbigendianunicode
: ビッグ エンディアンバイト順を使用して UTF-16 形式でエンコードします。bigendianutf32
: ビッグ エンディアンバイト順を使用して UTF-32 形式でエンコードします。oem
: MS-DOS およびコンソール プログラムの既定のエンコードを使用します。unicode
: リトル エンディアンバイト順を使用して UTF-16 形式でエンコードします。utf7
: UTF-7 形式でエンコードします。utf8
: UTF-8 形式でエンコードします。utf8BOM
: バイト オーダー マーク (BOM) を使用して UTF-8 形式でエンコードします。utf8NoBOM
: バイト オーダー マーク (BOM) を使用せずに UTF-8 形式でエンコードします。utf32
: UTF-32 形式でエンコードします。
PowerShell 6.2 以降では、 Encoding パラメーターを使用すると、登録済みのコード ページの数値 ID ( -Encoding 1251
など) や登録済みコード ページの文字列名 ( -Encoding "windows-1251"
など) も使用できます。 詳細については、 Encoding.CodePage の .NET ドキュメントを参照してください。
PowerShell 7.4 以降では、Encoding パラメーターのAnsi
値を使用して、手動で指定しなくても、現在のカルチャの ANSI コード ページの数値 ID を渡すことができます。
Note
UTF-7* を使用することは推奨されなくなりました。 PowerShell 7.1 の時点で、Encoding パラメーターにutf7
を指定すると警告が書き込まれます。
型: | Encoding |
指定可能な値: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
配置: | Named |
規定値: | UTF8NoBOM |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
このパラメーターを使用すると、 Export-Csv
は Read Only 属性を使用してファイルを上書きできます。
Force パラメーターと Append パラメーターを組み合わせると、プロパティが一致しないオブジェクトを CSV ファイルに書き込むことができます。 一致するプロパティのみがファイルに書き込まれます。 一致しないプロパティは破棄されます。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-IncludeTypeInformation
このパラメーターを使用する場合、CSV 出力の最初の行には、 #TYPE
の後にオブジェクト型の完全修飾名が続きます。 たとえば、#TYPE System.Diagnostics.Process
のようにします。
このパラメーターは、PowerShell 6.0 で導入されました。
型: | SwitchParameter |
Aliases: | ITI |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
CSV 文字列としてエクスポートするオブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。 オブジェクトをパイプ処理して Export-CSV
することもできます。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-LiteralPath
CSV 出力ファイルのパスを指定します。 Path とは異なり、LiteralPath パラメーターの値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符を使用します。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。
型: | String |
Aliases: | PSPath, LP |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-NoClobber
Export-CSV
が既存のファイルを上書きしないようにするには、このパラメーターを使用します。 既定では、指定したパスにファイルが存在する場合、 Export-CSV
は警告なしでファイルを上書きします。
型: | SwitchParameter |
Aliases: | NoOverwrite |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-NoHeader
このパラメーターを使用すると、コマンドレットは列名を含むヘッダー行を出力に書き込むことはありません。
このパラメーターは PowerShell 7.4 で追加されました。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-NoTypeInformation
#TYPE
情報ヘッダーを出力から削除します。 このパラメーターは PowerShell 6.0 の既定値となり、下位互換性のために含まれています。
型: | SwitchParameter |
Aliases: | NTI |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Path
CSV 出力ファイルを保存する場所を指定する必須のパラメーター。
型: | String |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-QuoteFields
引用符で囲む必要がある列の名前を指定します。 このパラメーターを使用すると、指定した列のみが引用符で囲まれます。 このパラメーターは PowerShell 7.0 で追加されました。
型: | String[] |
Aliases: | QF |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UseCulture
現在のカルチャのリスト区切り記号を項目区切り記号として使用します。 カルチャのリスト区切り記号を検索するには、次のコマンドを使用します: (Get-Culture).TextInfo.ListSeparator
。
型: | SwitchParameter |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UseQuotes
CSV ファイルで引用符を使用するタイミングを指定します。 次のいずれかの値になります。
- 決して - 何も引用符で囲まない
- 常に - すべてを引用符で囲む (既定の動作)
- AsNeeded - 区切り文字、二重引用符、または改行文字を含む引用符フィールドのみ
このパラメーターは PowerShell 7.0 で追加されました。
型: | Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind |
Aliases: | UQ |
配置: | Named |
規定値: | Always |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットが処理または変更されないようにします。 出力には、コマンドレットが実行された場合の動作が示されます。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
拡張型システム (ETS) アダプターを使用して任意のオブジェクトをこのコマンドレットにパイプできます。
出力
None
このコマンドレットは、出力を返しません。
メモ
PowerShell には、 Export-Csv
の次のエイリアスが含まれています。
- すべてのプラットフォーム:
epcsv
Export-CSV
コマンドレットは、送信したオブジェクトを一連の CSV 文字列に変換し、指定されたテキスト ファイルに保存します。 Export-CSV -IncludeTypeInformation
を使用してオブジェクトを CSV ファイルに保存し、Import-Csv
コマンドレットを使用して CSV ファイル内のテキストからオブジェクトを作成できます。
CSV ファイルでは、各オブジェクトは、オブジェクトのプロパティ値の文字区切りのリストで表されます。 プロパティ値は、 ToString() メソッドを使用して文字列に変換されます。 文字列はプロパティ値の名前で表されます。 Export-CSV -IncludeTypeInformation
では、オブジェクトのメソッドはエクスポートされません。
CSV 文字列は次のように出力されます。
- IncludeTypeInformation を使用する場合、最初の文字列には、#TYPE情報ヘッダーの後にオブジェクト型の完全修飾名が含まれます。 たとえば、System.Diagnostics.Process を#TYPEします。
- IncludeTypeInformationを使用しない場合、最初の文字列には列ヘッダーが含まれます。 ヘッダーには、最初のオブジェクトのプロパティ名が文字区切りリストとして含まれています。
- 残りの文字列には、各オブジェクトのプロパティ値の文字区切りのリストが含まれています。
PowerShell 6.0 以降では、 Export-CSV
の既定の動作は、CSV に #TYPE 情報を含めず、 NoTypeInformation を暗黙的に指定することです。 IncludeTypeInformation を使用して、 #TYPE 情報を含め、PowerShell 6.0 より前の Export-CSV
の既定の動作をエミュレートできます。
複数のオブジェクトを Export-CSV
に送信すると、 Export-CSV
は、最初に送信したオブジェクトのプロパティに基づいてファイルを整理します。 指定したプロパティのいずれかが残りのオブジェクトに含まれない場合、そのオブジェクトのプロパティ値は連続する 2 つのコンマで表される null になります。 残りのオブジェクトに追加のプロパティがある場合は、これらのプロパティ値は、ファイルには含まれません。
Import-Csv
コマンドレットを使用して、ファイル内の CSV 文字列からオブジェクトを再作成できます。 結果のオブジェクトは、メソッドのない、プロパティ値の文字列形式で構成された元のオブジェクトの CSV バージョンです。
ConvertTo-Csv
コマンドレットと ConvertFrom-Csv
コマンドレットは、オブジェクトを CSV 文字列と CSV 文字列に変換します。 Export-CSV
は ConvertTo-CSV
と同じですが、CSV 文字列がファイルに保存される点が異なります。
関連リンク
PowerShell