次の方法で共有


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 パラメーターを使用して、ファイルにデータを追加します。 VersionEdition の間にプロパティ名の不一致があるため、追加が失敗します。

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-CsvRead 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

入力

PSObject

拡張型システム (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-CSVConvertTo-CSVと同じですが、CSV 文字列がファイルに保存される点が異なります。