ConvertTo-CSV
將 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 |
預設值 |
, (逗號) |
接受管線輸入? |
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 |
預設值 |
逗號 |
接受管線輸入? |
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 參數,其將目前文化特性的清單分隔符號當成分隔符號。