將 Microsoft .NET Framework 物件轉換成一連串以逗號分隔值 (CSV) 且長度可變的字串,並將該字串儲存到 CSV 檔案。

語法

Export-CSV [[-Delimiter] <char>] [-Path] <string> -InputObject <psobject> [-Encoding <string>] [-Force] [-NoClobber] [-NoTypeInformation] [-Confirm] [-WhatIf] [<CommonParameters>]

Export-CSV [-UseCulture] [-Path] <string> -InputObject <psobject> [-Encoding <string>] [-Force] [-NoClobber] [-NoTypeInformation] [-Confirm] [-WhatIf] [<CommonParameters>]

描述

Export-CSV Cmdlet 會建立長度可變的 CSV 檔案,代表您所送出的物件。

然後您可以使用 Import-CSV Cmdlet,從該檔案中的 CSV 字串重新建立物件。產生的物件為原始物件的 CSV 版本,是由屬性值的字串表示所組成,而且沒有任何方法。

您也可以使用 ConvertTo-CSV 和 ConvertFrom-CSV Cmdlet,將 .NET Framework 物件轉換成 CSV 字串 (反之亦然)。Export-CSV 除了將 CSV 字串儲存到檔案中以外,與 ConvertTo-CSV 都相同。

您可以使用 Export-CSV Cmdlet 的參數指定逗號以外的分隔符號,或是指示 Export-CSV 使用目前文化特性的預設分隔符號。

當您送出多個物件給 Export-CSV 時,Export-CSV 會依照所送出之第一個物件的屬性來組織檔案。如果其他物件沒有其中一個指定的屬性,該物件的屬性值則為 null,以兩個連續的逗號代表。如果其他物件有額外的屬性,則不會在檔案中包含額外的屬性值。

如需詳細資訊,請參閱 Export-CSV 和 Notes 區段。

參數

-Delimiter <char>

指定分隔屬性值的分隔符號。預設為逗號 (,)。請輸入字元,例如分號 (:)。若要指定分號 (;),請將其置於引號內。

必要?

false

位置?

2

預設值

, (comma)

接受管線輸入?

false

接受萬用字元?

false

-Encoding <string>

指定 CSV 匯出檔的編碼。有效的值包括 Unicode、UTF7、UTF8、ASCII、UTF32、BigEndianUnicode、Default 和 OEM。預設為 ASCII。

必要?

false

位置?

named

預設值

ASCII

接受管線輸入?

false

接受萬用字元?

false

-Force

毫無預警地覆寫路徑中指定的檔案。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-InputObject <psobject>

指定要匯出成 CSV 字串的物件。請輸入包含物件的變數,或輸入可取得物件的命令或運算式。您也可經由管道將物件輸出至 Export-CSV。

必要?

true

位置?

named

預設值

接受管線輸入?

true (ByValue, ByPropertyName)

接受萬用字元?

false

-NoClobber

不覆寫 (取代) 現有檔案的內容。根據預設,如果有檔案現存於指定的路徑,Export-CSV 將覆寫該檔案而不顯示警告。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-NoTypeInformation

省略 CSV 檔案的型別資訊標頭。根據預設,CSV 檔案的第一行會包含 "#TYPE ",後面接著 .NET Framework 物件型別的完整名稱。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Path <string>

指定 CSV 輸出檔的路徑。此參數為必要項。

必要?

true

位置?

1

預設值

接受管線輸入?

false

接受萬用字元?

false

-UseCulture

使用目前文化特性的清單分隔符號做為項目分隔符號。預設為逗號 (,)。

此參數針對發佈給全球使用者的指令碼很有用。若要尋找文化特性的清單分隔符號,請使用下列命令:(Get-Culture).TextInfo.ListSeparator。

必要?

false

位置?

named

預設值

Comma

接受管線輸入?

false

接受萬用字元?

false

-Confirm

在執行命令前先提示確認。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-WhatIf

說明執行命令時將會發生何種情況,但不會實際執行命令。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

System.Management.Automation.PSObject

您可經由管道將任何 .NET Framework 物件輸出至 Export-CSV。

輸出

System.String

CSV 清單會傳送至 Path 參數所指定的檔案。

附註

Export-CSV Cmdlet 會將您所送出的物件轉換成一連串長度可變的 CSV 字串,並將它們儲存到指定的文字檔。您可以使用 Export-CSV 將物件儲存到 CSV 檔案,然後使用 Import-CSV Cmdlet 從該 CSV 檔案中的文字建立物件。

在 CSV 檔案中,每個物件都會由逗號分隔物件屬性值的清單來代表。屬性值會轉換成字串 (利用物件的 ToString() 方法),所以一般由屬性值的名稱來代表。Export-CSV 並不會匯出物件的方法。

匯出檔的格式如下:

-- CSV 檔案的第一行包含 '#TYPE ' 字串,後面接著 .NET Framework 物件型別的完整名稱,例如 #TYPE System.Diagnostics.Process。若要隱藏這一行,請使用 NoTypeInformation 參數。

-- CSV 檔案的第二行代表欄標頭,而且包含逗號分隔第一個物件所有屬性名稱的清單。

-- CSV 檔案的其他行包含逗號分隔每個物件屬性值的清單。

範例 1

C:\PS>get-process wmiprvse | select-object basePriority,ID,SessionID,WorkingSet | export-csv -path data.csv

描述
-----------
這個命令選取 wmiprvse 處理序的幾個屬性,並將它們匯出至名為 data.csv 的 CSV 格式檔案。






範例 2

C:\PS>get-process | export-csv processes.csv 

C:\PS> get-process | export-csv processes.csv 

# In processes.csv

#TYPE System.Diagnostics.Process
__NounName,Name,Handles,VM,WS,PM,NPM,Path,Company,CPU,FileVersion,...
Process,powershell,626,201666560,76058624,61943808,11960,C:\WINDOWS...
Process,powershell,257,151920640,38322176,37052416,7836,C:\WINDOWS\...

描述
-----------
這個命令會將那些代表電腦上處理序的物件匯出到目前目錄中的 Processes.csv 檔案,因為沒有指定分隔符號,該檔案中的欄位用逗號 (,) 分隔。






範例 3

C:\PS>get-process | export-csv processes.csv -Delimiter ";" 

# In processes.csv

#TYPE System.Diagnostics.Process
__NounName;Name;Handles;VM;WS;PM;NPM;Path;Company;CPU;FileVersion;...
Process;powershell;626;201666560;76058624;61943808;11960;C:\WINDOWS...
Process;powershell;257;151920640;38322176;37052416;7836;C:\WINDOWS\...

描述
-----------
這個命令會將那些代表電腦上處理序的物件匯出到目前目錄中的 Processes.csv 檔案,並使用 Delimiter 參數指定分號 (;)。因此,該檔案中的欄位之間是以分號分隔。






範例 4

C:\PS>get-process | export-csv processes.csv -UseCulture

描述
-----------
這個命令會將那些代表電腦上處理序的物件匯出到目前目錄中的 Processes.csv 檔案,並使用 UseCulture 參數指示 Export-CSV 使用目前文化特性的 ListSeparator 屬性所指定的分隔符號。






範例 5

C:\PS>get-process | export-csv processes.csv -NoTypeInformation

C:\PS> get-process | export-csv processes.csv -NoTypeInformation

# In processes.csv

__NounName,Name,Handles,VM,WS,PM,NPM,Path,Company,CPU,FileVersion,...
Process,powershell,626,201666560,76058624,61943808,11960,C:\WINDOWS...
Process,powershell,257,151920640,38322176,37052416,7836,C:\WINDOWS\...

描述
-----------
這個命令會將那些代表電腦上處理序的物件匯出到目前目錄中的 Processes.csv 檔案,並使用 NoTypeInformation 參數隱藏該檔案中的型別資訊。






請參閱




目錄