ConvertFrom-Csv
コンマ区切り値 (CSV) 形式のオブジェクトのプロパティを元のオブジェクトの CSV バージョンに変換します。
構文
ConvertFrom-Csv
[[-Delimiter] <Char>]
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
ConvertFrom-Csv
-UseCulture
[-InputObject] <PSObject[]>
[-Header <String[]>]
[<CommonParameters>]
説明
コマンドレットは ConvertFrom-Csv 、コマンドレットによって生成される CSV 可変長文字列からオブジェクトを ConvertTo-Csv 作成します。
このコマンドレットのパラメーターを使用して、結果のオブジェクトのプロパティ名を決定する列ヘッダー行を指定したり、アイテム区切り記号を指定したり、現在のカルチャのリスト区切り記号を区切り記号として使用するようにこのコマンドレットに指示したりできます。
作成される ConvertFrom-Csv オブジェクトは、元のオブジェクトの CSV バージョンです。 CSV オブジェクトのプロパティ値は、元のオブジェクトのプロパティ値の文字列バージョンです。 オブジェクトの CSV バージョンはメソッドを持ちません。
また、and Import-Csv コマンドレットをExport-Csv使用して、オブジェクトをファイル内の CSV 文字列 (および戻る) に変換することもできます。 これらのコマンドレットは、CSV 文字列をファイルに ConvertTo-Csv 保存する点を除いて、コマンドレットと ConvertFrom-Csv 同じです。
例
例 1: ローカル コンピューター上のプロセスを CSV 形式に変換する
この例では、ローカル コンピューター上のプロセスを CSV 形式に変換し、オブジェクト フォームに復元する方法を示します。
$P = Get-Process | ConvertTo-Csv
$P | ConvertFrom-Csv
コマンドレットは Get-Process 、パイプラインの下にプロセスを送信します ConvertTo-Csv。 このコマンドレットは ConvertTo-Csv 、プロセス オブジェクトを一連の CSV 文字列に変換します。 このコマンドレットは ConvertFrom-Csv 、CSV 文字列を元のプロセス オブジェクトの CSV バージョンに変換します。 CSV 文字列は変数に $P 保存されます。
例 2: データ オブジェクトを CSV 形式に変換し、次に CSV オブジェクト形式に変換する
この例では、データ オブジェクトを CSV 形式に変換してから、CSV オブジェクト形式に変換する方法を示します。
$Date = Get-Date | ConvertTo-Csv -Delimiter ';'
ConvertFrom-Csv -InputObject $Date -Delimiter ';'
最初のコマンドは、パイプラインConvertTo-Csvの現在の日付と時刻を送信するために使用Get-Dateします。 コマンドレットは ConvertTo-Csv 、日付オブジェクトを一連の CSV 文字列に変換します。
区切り記号パラメーターは、セミコロン区切り記号を指定するために使用されます。 文字列は変数に $Date 保存されます。
例 3: ヘッダー パラメーターを使用してプロパティの名前を変更する
この例では、 Header パラメーター ConvertFrom-Csv を使用して、結果としてインポートされたオブジェクトのプロパティの名前を変更する方法を示します。
$J = Start-Job -ScriptBlock { Get-Process } | ConvertTo-Csv -NoTypeInformation
$Header = 'State', 'MoreData', 'StatusMessage', 'Location', 'Command', 'StateInfo', 'Finished', 'InstanceId', 'Id', 'Name', 'ChildJobs', 'BeginTime', 'EndTime', 'JobType', 'Output', 'Error', 'Progress', 'Verbose', 'Debug', 'Warning', 'Information'
# Delete the default header from $J
$J = $J[1..($J.count - 1)]
$J | ConvertFrom-Csv -Header $Header
State : Running
MoreData : True
StatusMessage :
Location : localhost
Command : Get-Process
StateInfo : Running
Finished : System.Threading.ManualResetEvent
InstanceId : a259eb63-6824-4b97-a033-305108ae1c2e
Id : 1
Name : Job1
ChildJobs : System.Collections.Generic.List`1[System.Management.Automation.Job]
BeginTime : 12/20/2018 18:59:57
EndTime :
JobType : BackgroundJob
Output : System.Management.Automation.PSDataCollection`1[System.Management.Automation.PSObject]
Error : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ErrorRecord]
Progress : System.Management.Automation.PSDataCollection`1[System.Management.Automation.ProgressRecord]
Verbose : System.Management.Automation.PSDataCollection`1[System.Management.Automation.VerboseRecord]
Debug : System.Management.Automation.PSDataCollection`1[System.Management.Automation.DebugRecord]
Warning : System.Management.Automation.PSDataCollection`1[System.Management.Automation.WarningRecord]
Information : System.Management.Automation.PSDataCollection`1[System.Management.Automation.InformationRecord]
コマンドレットは Start-Job 、実行 Get-Processされるバックグラウンド ジョブを開始します。 ジョブ オブジェクトがパイプライン ConvertTo-Csv に送信され、CSV 文字列に変換されます。 NoTypeInformation パラメーターは、CSV 出力から型情報ヘッダーを削除し、PowerShell v6 以降では省略可能です。 この $Header 変数には、 HasMoreData、 JobStateInfo、 PSBeginTime、 PSEndTime、 PSJobTypeName の既定値を置き換えるカスタム ヘッダーが含まれています。 変数には $J CSV 文字列が含まれており、既定のヘッダーを削除するために使用されます。 コマンドレットは ConvertFrom-Csv CSV 文字列を PSCustomObject に変換し、 Header パラメーターを使用して変数を $Header 適用します。
例 4: サービス オブジェクトの CSV 文字列を変換する
この例では、UseCulture パラメーターでコマンドレットをConvertFrom-Csv使用する方法を示します。
(Get-Culture).TextInfo.ListSeparator
$Services = (Get-Service | ConvertTo-Csv)
ConvertFrom-Csv -InputObject $Services -UseCulture
コマンドレットは Get-Culture 、入れ子になったプロパティ TextInfo と ListSeparator を使用して、現在のカルチャの既定のリスト区切り記号を取得します。 コマンドレットは Get-Service 、パイプラインの下にサービス オブジェクトを送信します ConvertTo-Csv。 サービス ConvertTo-Csv オブジェクトを一連の CSV 文字列に変換します。 CSV 文字列は変数に $Services 格納されます。 コマンドレットは ConvertFrom-CsvInputObject パラメーターを使用し、変数から CSV 文字列を $Services 変換します。 UseCulture パラメーターは、現在のカルチャの既定のリスト区切り記号を使用します。
UseCulture パラメーターを使用する場合は、現在のカルチャの既定のリスト区切り記号が CSV 文字列で使用されている区切り記号と一致していることを確認してください。 それ以外の場合は、 ConvertFrom-Csv CSV 文字列からオブジェクトを生成できません。
パラメーター
CSV 文字列内のプロパティ値を区切る区切り記号を指定します。 既定値はコンマ (,) です。 コロン (:) などの文字を入力します。 セミコロン (;) を指定するには、単一引用符で囲みます。
ファイルに実際の文字列区切り記号以外の文字を指定した場合、 ConvertFrom-Csv CSV 文字列からオブジェクトを作成できず、CSV 文字列が返されます。
| Type: | Char |
| Position: | 1 |
| Default value: | comma (,) |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
インポートされた文字列の代替列ヘッダー行を指定します。 列ヘッダーは、作成 ConvertFrom-Csvされるオブジェクトのプロパティ名を決定します。
コンマ区切りリストとして列ヘッダーを入力します。 ヘッダー文字列は引用符で囲まないでください。 各列ヘッダーを単一引用符で囲みます。
入力する列ヘッダーがデータ列よりも少ない場合、残りのデータ列は破棄されます。 データ列よりも多くの列ヘッダーを入力すると、空のデータ列で追加の列ヘッダーが作成されます。
Header パラメーターを使用する場合は、CSV 文字列から列ヘッダー文字列を省略します。 それ以外の場合、このコマンドレットはヘッダー行の項目から追加のオブジェクトを作成します。
| Type: | String[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
オブジェクトに変換する CSV 文字列を指定します。 CSV 文字列が格納されている変数を入力するか、CSV 文字列を取得するコマンドまたは式を入力します。 CSV 文字列をパイプ処理することもできます ConvertFrom-Csv。
| Type: | PSObject[] |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
アイテム区切り記号として、現在のカルチャのリスト区切り記号を使用します。 カルチャのリスト区切り記号を検索するには、次のコマンドを使用します (Get-Culture).TextInfo.ListSeparator。
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
入力
CSV 文字列をこのコマンドレットにパイプ処理できます。
出力
このコマンドレットは、CSV 文字列のプロパティによって記述されたオブジェクトを返します。
メモ
インポートされたオブジェクトはオブジェクトの種類の CSV バージョンであるため、オブジェクト型の CSV 以外のバージョンを書式設定する PowerShell 型の書式設定エントリでは認識および書式設定されません。
CSV 形式では、各オブジェクトは、オブジェクトのプロパティ値のコンマ区切りリストで表されます。 プロパティ値は (オブジェクトの ToString() メソッドを使用して) 文字列に変換されるため、プロパティ値の名前で表されます。 このコマンドレットは、オブジェクトのメソッドをエクスポートしません。