將 Microsoft .NET Framework 物件轉換成一連串以逗點分隔值 (CSV) 且長度可變的字串。

語法

ConvertTo-CSV [[-Delimiter] <char>] [-InputObject] <psobject> [-NoTypeInformation] [<CommonParameters>]

ConvertTo-CSV [-UseCulture] [-InputObject] <psobject> [-NoTypeInformation] [<CommonParameters>]

描述

ConvertTo-CSV Cmdlet 會傳回一連串以逗點分隔且長度可變 (CSV) 的字串,代表您所送出的物件。然後您可以使用 ConvertFrom-CSV Cmdlet 從 CSV 字串重新建立物件。產生的物件為原始物件的 CSV 版本,是由屬性值的字串表示所組成,而且沒有任何方法。

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

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

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

參數

-Delimiter <char>

指定分隔屬性值的分隔符號。預設為逗號 (,)。請輸入字元,例如分號 (:)。

若要指定分號 (;),請將其置於引號內。否則,分號會被解譯為命令分隔符號。

必要?

false

位置?

2

預設值

, (comma)

接受管線輸入?

false

接受萬用字元?

false

-InputObject <psobject>

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

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByValue, ByPropertyName)

接受萬用字元?

false

-NoTypeInformation

省略輸出的型別資訊標頭。根據預設,輸出的字串會包含 "#TYPE ",後面接著 .NET Framework 物件型別的完整名稱。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-UseCulture

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

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

必要?

false

位置?

named

預設值

Comma

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

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

輸入和輸出

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

輸入

System.Management.Automation.PSObject

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

輸出

System.String

傳回的 CSV 輸出是字串的集合。

附註

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

產生的 CSV 字串的格式如下:

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

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

-- 其他字串包含逗號分隔每個物件屬性值的清單。

當您送出多個物件給 ConvertTo-CSV 時,ConvertTo-CSV 會依照所送出之第一個物件的屬性來排序字串。如果其他物件沒有其中一個指定的屬性,該物件的屬性值則為 null,以兩個連續的逗號代表。如果其他物件有額外的屬性,則會忽略額外的屬性值。

範例 1

C:\PS>get-process powershell | convertto-csv

#TYPE System.Diagnostics.Process
"__NounName","Name","Handles","VM","WS","PM","NPM","Path","Company","CPU","FileVersion","ProductVersion","Description",
"Product","BasePriority","ExitCode","HasExited","ExitTime","Handle","HandleCount","Id","MachineName","MainWindowHandle"
,"MainWindowTitle","MainModule","MaxWorkingSet","MinWorkingSet","Modules","NonpagedSystemMemorySize","NonpagedSystemMem
orySize64","PagedMemorySize","PagedMemorySize64","PagedSystemMemorySize","PagedSystemMemorySize64","PeakPagedMemorySize
","PeakPagedMemorySize64","PeakWorkingSet","PeakWorkingSet64","PeakVirtualMemorySize","PeakVirtualMemorySize64","Priori
tyBoostEnabled","PriorityClass","PrivateMemorySize","PrivateMemorySize64","PrivilegedProcessorTime","ProcessName","Proc
essorAffinity","Responding","SessionId","StartInfo","StartTime","SynchronizingObject","Threads","TotalProcessorTime","U
serProcessorTime","VirtualMemorySize","VirtualMemorySize64","EnableRaisingEvents","StandardInput","StandardOutput","Sta
ndardError","WorkingSet","WorkingSet64","Site","Container"
"Process","powershell","216","597544960","60399616","63197184","21692","C:\WINDOWS\system32\WindowsPowerShell\v1.0\powe
rshell.exe","Microsoft Corporation","3.4788223","6.1.6587.1 (fbl_srv_powershell(nigels).070711-0102)","6.1.6587.1","Win
dows PowerShell","Microsoft® Windows® Operating System","8",,"False",,"860","216","5132",".","5636936","Windows PowerSh
ell 2.0 (04/17/2008 00:10:40)","System.Diagnostics.ProcessModule (powershell.exe)","1413120","204800","System.Diagnosti
cs.ProcessModuleCollection","21692","21692","63197184","63197184","320080","320080","63868928","63868928","60715008","6
0715008","598642688","598642688","True","Normal","63197184","63197184","00:00:00.2028013","powershell","15","True","1",
"System.Diagnostics.ProcessStartInfo","4/21/2008 3:49:19 PM",,"System.Diagnostics.ProcessThreadCollection","00:00:03.51
00225","00:00:03.3072212","597544960","597544960","False",,,,"60399616","60399616",,

描述
-----------
這個命令會將單一處理序物件轉換成 CSV 格式。它會使用 Get-Process Cmdlet 取得本機電腦上的 PowerShell 處理序,並使用管線運算子 (|) 將命令結果傳送給 ConvertTo-CSV Cmdlet,讓後者將結果轉換成一連串以逗點分隔的字串。






範例 2

C:\PS>$date = get-date

C:\PS> convertto-csv -inputobject $date -delimiter ";" -notypeinformation

描述
-----------
這個範例會將日期物件轉換成 CSV 格式。

第一個命令會使用 Get-Date Cmdlet 取得目前的日期,然後將其儲存到 $date 變數。

第二個命令會使用 ConvertTo-CSV Cmdlet 將 $date 變數中的 DateTime 物件轉換成 CSV 格式。此命令會使用 InputObject 參數指定要轉換的物件、使用 Delimiter 參數指定分隔物件屬性的分隔符號,以及使用 NoTypeInformation 參數隱藏 #TYPE 字串。






範例 3

C:\PS>get-eventlog -log "windows powershell" | convertto-csv -useculture

描述
-----------
這個命令會將本機電腦上的 Windows PowerShell 事件記錄檔轉換成一連串的 CSV 字串。

該命令會使用 Get-EventLog Cmdlet 取得 Windows PowerShell 記錄檔中的事件。管線運算子 (|) 會將事件傳送給 ConvertTo-CSV Cmdlet,此 Cmdlet 會將事件轉換成 CSV 格式。該命令會使用 UseCulture 參數,其將目前文化特性的清單分隔符號當成分隔符號。






請參閱




目錄