ConvertTo-CSV
Microsoft .NET Framework オブジェクトを一連のコンマ区切りの可変長値 (CSV) 文字列に変換します。
構文
ConvertTo-CSV [[-Delimiter] <char>] [-InputObject] <psobject> [-NoTypeInformation] [<CommonParameters>]
ConvertTo-CSV [-UseCulture] [-InputObject] <psobject> [-NoTypeInformation] [<CommonParameters>]
説明
ConvertTo-CSV コマンドレットは、送信するオブジェクトを表す一連のコンマ区切りの可変長 (CSV) 文字列を返します。その後、ConvertFrom-CSV コマンドレットを使用して CSV 文字列からオブジェクトを再作成できます。再作成されたオブジェクトは元のオブジェクトの CSV バージョンで、プロパティの値を表す文字列で構成され、メソッドはありません。
また、Export-CSV コマンドレットと Import-CSV コマンドレットを使用して、.NET Framework オブジェクトを CSV 文字列に (またはその逆に) 変換できます。Export-CSV は、CSV 文字列をファイルに保存する点を除いて、ConvertTo-CSV と同じです。
ConvertTo-CSV コマンドレットのパラメーターを使用すると、コンマ以外の区切り文字を指定するか、現在のカルチャの既定の区切り文字を ConvertTo-CSV に使用させることができます。
詳細については、「Export-CSV」とその「注」セクションを参照してください。
パラメーター
-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>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
System.Management.Automation.PSObject パイプを使用してどの .NET Framework オブジェクトでも ConvertTo-CSV に渡すことができます。 |
出力 |
System.String CSV 出力は、文字列のコレクションとして返されます。 |
注
CSV 形式では、プロパティ値をコンマで区切った一覧で各オブジェクトが表記されます。プロパティ値は (オブジェクトの ToString() メソッドを使用して) 文字列に変換されるため、通常はプロパティ値の名前で表されます。ConvertTo-CSV はオブジェクトのメソッドをエクスポートしません。
結果の CSV 文字列の形式は次のとおりです。
-- 最初の文字列は、#TYPE System.Diagnostics.Process のように、'#TYPE ' に続いてオブジェクトの .NET Framework 型の完全修飾名で構成されます。この文字列を非表示にするには、NoTypeInformation パラメーターを使用します。
-- 次の文字列は、列ヘッダーを表しています。ここには、最初のオブジェクトのすべてのプロパティ名のコンマ区切り一覧が含まれます。
-- 残りの文字列は、各オブジェクトのプロパティ値をコンマで区切った一覧で構成されます。
複数のオブジェクトを ConvertTo-CSV に送信すると、ConvertTo-CSV は、送信した最初のオブジェクトのプロパティに基づいて文字列を順番に並べます。指定したプロパティが残りのオブジェクトにない場合、そのオブジェクトのプロパティ値は null で、コンマを 2 個並べて表記します。残りのオブジェクトに追加プロパティがある場合、それらのプロパティ値は無視されます。
例 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",,
説明
-----------
このコマンドは、1 つのプロセス オブジェクトを CSV 形式に変換します。このコマンドは Get-Process コマンドレットを使用してローカル コンピューターの PowerShell プロセスを取得します。コマンドはパイプライン演算子 (|) により ConvertTo-CSV コマンドレットに渡され、コマンドが一連のコンマで区切られた文字列に変換されます。
例 2
C:\PS>$date = get-date
C:\PS> convertto-csv -inputobject $date -delimiter ";" -notypeinformation
説明
-----------
この例では、日付オブジェクトを CSV 形式に変換します。
最初のコマンドは、Get-Date コマンドレットを使用して現在の日付を取得します。日付は $date 変数に保存されます。
2 番目のコマンドは、ConvertTo-CSV コマンドレットを使用して、$date 変数の DateTime オブジェクトを CSV 形式に変換します。このコマンドは、InputObject パラメーターを使用して、変換するオブジェクトを指定します。また、Delimiter パラメーターを使用してオブジェクト プロパティを区切る区切り文字を指定します。さらに、NoTypeInformation パラメーターを使用して #TYPE 文字列を非表示にします。
例 3
C:\PS>get-eventlog -log "windows powershell" | convertto-csv -useculture
説明
-----------
このコマンドは、ローカル コンピューターの Windows PowerShell イベント ログを一連の CSV 文字列に変換します。
このコマンドは、Get-EventLog コマンドレットを使用して Windows PowerShell ログのイベントを取得します。イベントはパイプライン演算子 (|) により ConvertTo-CSV コマンドレットに送られ、CSV 形式に変換されます。このコマンドは UseCulture パラメーターを使用し、これによって現在のカルチャの区切り記号が区切り文字として使用されます。