Export-Csv

オブジェクトを一連のコンマ区切り値 (CSV) 文字列に変換し、文字列をファイルに保存します。

構文

Export-Csv
      -InputObject <PSObject>
      [[-Path] <String>]
      [-LiteralPath <String>]
      [-Force]
      [-NoClobber]
      [-Encoding <Encoding>]
      [-Append]
      [[-Delimiter] <Char>]
      [-IncludeTypeInformation]
      [-NoTypeInformation]
      [-QuoteFields <String[]>]
      [-UseQuotes <QuoteKind>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Export-Csv
      -InputObject <PSObject>
      [[-Path] <String>]
      [-LiteralPath <String>]
      [-Force]
      [-NoClobber]
      [-Encoding <Encoding>]
      [-Append]
      [-UseCulture]
      [-IncludeTypeInformation]
      [-NoTypeInformation]
      [-QuoteFields <String[]>]
      [-UseQuotes <QuoteKind>]
      [-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-ProcessProcess オブジェクトを 取得します。 プロセス オブジェクトは、パイプラインからコマンドレットに 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-ProcessProcess オブジェクトを 取得します。 プロセス オブジェクトは、パイプラインからコマンドレットに 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 、入れ子になったプロパティ TextInfoListSeparator を使用し、現在のカルチャの既定のリスト区切り記号を表示します。 コマンドレットは Get-ProcessProcess オブジェクトを 取得します。 プロセス オブジェクトは、パイプラインからコマンドレットに 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-ProcessProcess オブジェクトを 取得します。 プロセス オブジェクトは、パイプラインからコマンドレットに Export-Csv 送信されます。 Export-Csv は、プロセス オブジェクトを一連の CSV 文字列に変換します。 Path パラメーターは、Processes.csv ファイルが現在のディレクトリに保存されることを指定します。 IncludeTypeInformation には、CSV 出力に#TYPE情報ヘッダーが含まれます。 コマンドレットは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 Windows という単語を含むサービスに対して、コマンドレットとSelect-Objectコマンドレットが繰り返されます。 変数には $WinService 、サービス オブジェクトが格納されます。 このコマンドレットではExport-Csv、Append パラメーターを使用して、オブジェクトが既存の$WinServiceServices.csv ファイルに追加されるように指定します。 コマンドレットが Get-Content 繰り返され、追加されたデータを含む更新されたファイルが表示されます。

例 7: パイプライン内の書式設定コマンドレットによって予期しない結果が作成される

この例では、パイプライン内でフォーマット コマンドレットを使用しないことが重要な理由を示します。 予期しない出力が受信されたら、パイプライン構文のトラブルシューティングを行います。

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-DateDateTime オブジェクトを取得します。 オブジェクトがパイプラインからコマンドレットに 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-ProcessProcess オブジェクトを 取得します。 プロセス オブジェクトは、パイプラインからコマンドレットに 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

式は、名前プロパティとバージョン プロパティを使用して PSCustomObject作成します。 値は変数に $Content 格納されます。 変数は $Content パイプラインからコマンドレットに Export-Csv 送信されます。 Export-Csvは Path パラメーターを使用し、ParmFile.csv ファイルを現在のディレクトリに保存します。 NoTypeInformation パラメーターは、CSV 出力から#TYPE情報ヘッダーを削除します。PowerShell 6 では必須ではありません。

別の式では、Name プロパティと Edition プロパティを使用して PSCustomObject作成されます。 値は変数に $AdditionalContent 格納されます。 変数は $AdditionalContent パイプラインからコマンドレットに Export-Csv 送信されます。 Append パラメーターは、ファイルにデータを追加するために使用されます。 バージョンエディションの間にプロパティ名が一致しないため、追加が失敗します。

コマンドレット ForceExport-Csv パラメーターを使用して、エクスポートを強制的にファイルに書き込みます。 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

パラメーター

-Append

指定したファイルの末尾に Export-CSV CSV 出力を追加するには、このパラメーターを使用します。 このパラメーターを指定しない場合は、 Export-CSV 警告なしでファイルの内容を置き換えます。

このパラメーターは Windows PowerShell 3.0 で導入されました。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Delimiter

プロパティの値を区切る区切り記号を指定します。 既定値はコンマ (,) です。 コロン (:) などの文字を入力します。 セミコロン (;) を指定するには、引用符で囲みます。

Type:Char
Position:1
Default value:comma (,)
Accept pipeline input:False
Accept wildcard characters:False
-Encoding

エクスポートされた CSV ファイルのエンコード方式を指定します。 既定値は utf8NoBOM です。

このパラメーターで使用できる値は次のとおりです。

  • ascii: ASCII (7 ビット) 文字セットのエンコードを使用します。
  • 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 ドキュメントを参照してください。

注意

UTF-7* の使用は推奨されなくなりました。 PowerShell 7.1 以降では、Encoding パラメーターに指定utf7すると警告が書き込まれます。

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Accept pipeline input:False
Accept wildcard characters:False
-Force

このパラメーターを使用すると、ファイルを読み取り専用属性で上書きできますExport-Csv

Force パラメーターと Append パラメーターを組み合わせると、一致しないプロパティを含むオブジェクトを CSV ファイルに書き込むことができます。 一致するプロパティのみがファイルに書き込まれます。 一致しないプロパティは破棄されます。

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-IncludeTypeInformation

このパラメーターを使用する場合、CSV 出力の最初の行には 、#TYPE の後にオブジェクトの種類の完全修飾名が続きます。 たとえば、 System.Diagnostics.Process を#TYPEします。

このパラメーターは、PowerShell 6.0 で導入されました。

Type:SwitchParameter
Aliases:ITI
Position:Named
Default value:#TYPE <Object>
Accept pipeline input:False
Accept wildcard characters:False
-InputObject

CSV 文字列としてエクスポートするオブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。 オブジェクト Export-CSVをパイプすることもできます。

Type:PSObject
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-LiteralPath

CSV 出力ファイルのパスを指定します。 Path と異なり、LiteralPath パラメーターの値は入力したとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符を使用します。 単一引用符は、文字をエスケープ シーケンスとして解釈しないように PowerShell に指示します。

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-NoClobber

既存のファイルを Export-CSV 上書きしないように、このパラメーターを使用します。 既定では、指定したパスにファイルが存在する場合は、 Export-CSV 警告なしでファイルを上書きします。

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-NoTypeInformation

出力から #TYPE 情報ヘッダーを削除します。 このパラメーターは PowerShell 6.0 の既定値となり、下位互換性のために含まれています。

Type:SwitchParameter
Aliases:NTI
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Path

CSV 出力ファイルを保存する場所を指定する必須パラメーター。

Type:String
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-QuoteFields

引用符で囲む必要がある列の名前を指定します。 このパラメーターを使用すると、指定した列のみが引用符で囲まれます。 このパラメーターは PowerShell 7.0 で追加されました。

Type:String[]
Aliases:QF
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-UseCulture

現在のカルチャのリスト区切り記号を項目区切り記号として使用します。 カルチャのリスト区切り記号を見つけるには、次のコマンドを使用します (Get-Culture).TextInfo.ListSeparator

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-UseQuotes

CSV ファイルで引用符を使用するタイミングを指定します。 次のいずれかの値になります。

  • 決して - 何も引用符で囲まない
  • Always - すべてを引用符で囲む (既定の動作)
  • AsNeeded - 区切り文字を含む引用符フィールドのみ

このパラメーターは PowerShell 7.0 で追加されました。

Type:Microsoft.PowerShell.Commands.BaseCsvWritingCommand+QuoteKind
Aliases:UQ
Position:Named
Default value:Always
Accept pipeline input:False
Accept wildcard characters:False
-WhatIf

コマンドレットが処理または変更されないようにします。 出力には、コマンドレットが実行された場合の動作が示されます。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

入力

PSObject

拡張型システム (ETS) アダプターを使用して任意のオブジェクトを Export-CSVパイプできます。

出力

String

CSV リストが Path パラメーターに指定されたファイルに送られます。

メモ

コマンドレットは Export-CSV 、送信したオブジェクトを一連の CSV 文字列に変換し、指定されたテキスト ファイルに保存します。 CSV ファイルにオブジェクトを保存し、コマンドレットをImport-Csv使用して CSV ファイル内のテキストからオブジェクトを作成するために使用Export-CSV -IncludeTypeInformationできます。

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 バージョンです。

コマンドレットとConvertFrom-CsvコマンドレットはConvertTo-Csv、オブジェクトを CSV 文字列と CSV 文字列に変換します。 Export-CSV は、CSV 文字列をファイルに保存する点を除き、同じです ConvertTo-CSV