PowerShell Cmdlet - ConvertFrom-CSV
 記事記号:[mf1919] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    ConvertFrom-CSV
    
概要
    コンマ区切り値 (CSV) 形式のオブジェクト プロパティを元のオブジェクトの CSV 
    バージョンに変換します。
    
構文
    ConvertFrom-CSV [[-Delimiter] <char>] [-InputObject] <PSObject[]> [-Header 
    <string[]>] [<CommonParameters>]
    
    ConvertFrom-CSV -UseCulture [-InputObject] <PSObject[]> [-Header <string[]>] 
    [<CommonParameters>]
    
説明
    ConvertFrom-CSV コマンドレットは、ConvertTo-CSV コマンドレットにより生成され
    る CSV の可変長文字列からオブジェクトを作成します。
    
    ConvertFrom-CSV コマンドレットのパラメーターを使用して、結果のオブジェクトの
    プロパティ名を決定する列ヘッダー行を指定するか、項目の区切り文字を指定するか、
    現在のカルチャの区切り記号を区切り文字として使用するよう ConvertFrom-CSV に
    指示することができます。
    
    ConvertFrom-CSV により作成されるオブジェクトは、元のオブジェクトの CSV バー
    ジョンです。CSV オブジェクトのプロパティ値は、元のオブジェクトのプロパティ値
    の文字列バージョンです。オブジェクトの CSV バージョンにはメソッドがありません。
    
    また、Export-CSV コマンドレットと Import-CSV コマンドレットを使用して、オブジ
    ェクトをファイルの CSV 文字列に (またはその逆に) 変換することもできます。これ
    らのコマンドレットは、CSV 文字列をファイルに保存することを除いて ConvertTo-CS
    V コマンドレットおよび ConvertFrom-CSV コマンドレットと同じです。
    
パラメーター
    -Delimiter <char>
        CSV 文字列でプロパティ値を区切る区切り文字を指定します。既定値はコンマ 
        (,) です。コロン (:) などの文字を入力します。セミコロン (;) を指定する
        には、それを引用符で囲みます。
        
        CSV 文字列で使用される区切り文字以外の文字を指定した場合、ConvertFrom-CS
        V は、CSV 文字列からオブジェクトを作成できません。代わりに、文字列が返さ
        れます。
        
        必須                         false
        位置                         2
        既定値                       ','
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Header <string[]>
        インポートされた文字列に対して別の列ヘッダー行を指定します。列ヘッダーは、
        ConvertFrom-CSV により作成されるオブジェクトのプロパティ名を決定します。
        
        列ヘッダーのコンマ区切り一覧を入力します。各項目を引用符 (単一または二重
        ) で囲みます。ヘッダー文字列は引用符で囲まないでください。存在している列
        よりも少ない数の列ヘッダーを入力した場合、残りの列にはヘッダーが表示され
        ません。存在している列よりも多い数の列ヘッダーを入力した場合、余分なヘッ
        ダーは無視されます。
        
        Header パラメーターを使用する場合、CSV 文字列から列ヘッダー文字列を省略し
        ます。使用しない場合は、ConvertFrom-CSV がヘッダー行の項目から追加オブジ
        ェクトを作成します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -InputObject <PSObject[]>
        オブジェクトに変換する CSV 文字列を指定します。CSV 文字列が格納されてい
        る変数を入力するか、CSV 文字列を取得するコマンドまたは式を入力します。パ
        イプを使用して CSV 文字列を ConvertFrom-CSV に渡すこともできます。
        
        必須                         true
        位置                         1
        既定値                       
        パイプライン入力を許可する   true (ByValue, ByPropertyName)
        ワイルドカード文字を許可する false
        
    -UseCulture [<SwitchParameter>]
        現在のカルチャの区切り記号を文字列の区切り文字として使用します。既定値は
        コンマ (,) です。
        
        カルチャの区切り記号を検索するには、(Get-Culture).TextInfo.ListSeparator 
        コマンドを使用します。CSV 文字列で使用される区切り文字以外の文字を指定し
        た場合、ConvertFrom-CSV は、CSV 文字列からオブジェクトを作成できません。
        代わりに、文字列が返されます。
        
        必須                         true
        位置                         named
        既定値                       コンマ
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    System.String
        パイプを使用して CSV 文字列を ConvertFrom-CSV に渡すことができます。
    
出力
    System.Management.Automation.PSObject
        ConvertFrom-CSV は、CSV 文字列のプロパティにより記述されるオブジェクトを
        返します。
    
メモ
        インポートされたオブジェクトは CSV バージョンのオブジェクト型であるため、
        非 CSV バージョンのオブジェクト型を書式設定する Windows PowerShell の型書
        式設定エントリにより認識および書式設定されません。
        
        CSV 形式では、オブジェクトのプロパティ値をコンマで区切った一覧で各オブジ
        ェクトが表記されます。プロパティ値は (オブジェクトの ToString() メソッド
        を使用して) 文字列に変換されるため、通常はプロパティ値の名前で表されます。
        ConvertTo-Csv はオブジェクトのメソッドをエクスポートしません。
        
    -------------------------- 例 1 --------------------------
    
    C:\PS>$p = get-process | convertto-csv
    
    C:\PS> $p | convertfrom-csv
    
    説明
    -----------
    これらのコマンドは、ローカル コンピューターのプロセスを CSV 形式に変換し、そ
    の後、オブジェクト形式に復元します。
    
    最初のコマンドは、Get-Process コマンドレットを使用してローカル コンピュータ
    ーのプロセスを取得します。これらのプロセスはパイプライン演算子 (|) により Co
    nvertTo-CSV コマンドレットに送られ、プロセス オブジェクトが CSV 形式に変換さ
    れます。CSV 文字列は $p 変数に保存されます。
    
    2 番目のコマンドは、パイプライン演算子を使用して $p 変数の CSV 文字列を Conv
    ertFrom-CSV コマンドレットに送信します。コマンドレットは、CSV 文字列を元の C
    SV バージョンのプロセス オブジェクトに変換します。
    
    -------------------------- 例 2 --------------------------
    
    C:\PS>$date = get-date | convertto-csv -delimiter ";"
    
    C:\PS> convertfrom-csv -inputobject $date -delimiter ";"
    
    説明
    -----------
    これらのコマンドは、日付オブジェクトを CSV 形式に変換し、その後、CSV オブジ
    ェクト形式に変換します。
    
    最初のコマンドは、Get-Date コマンドレットを使用して現在の日付と時刻を取得し
    ます。データはパイプライン演算子 (|) によって ConvertTo-CSV コマンドレットに
    送られ、日付オブジェクトが一連の CSV 文字列に変換されます。このコマンドは、D
    elimiter パラメーターを使用してセミコロンの区切り文字を指定します。文字列は 
    $date 変数に保存されます。
    
    2 番目のコマンドは、ConvertFrom-CSV コマンドレットを使用して、$date 変数の C
    SV 文字列をオブジェクト形式に戻します。このコマンドは InputObject パラメータ
    ーを使用して CSV 文字列を指定し、Delimiter パラメーターを使用してセミコロン
    の区切り文字を指定します。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS>$j = start-job -scriptblock { get-process } | convertto-csv
    
    C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","Fi
    nished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Progre
    ss","Verbose","Debug","Warning","StateChanged"
    
    # Delete header from $j
    C:\PS> $j = $j[0], $j[2..($j.count - 1)]
    
    $j | convertfrom-csv -header $header
    
    MoreData      : True
    StatusMessage : 
    Location      : localhost
    Command       : get-process
    State         : Running
    Finished      : System.Threading.ManualResetEvent
    InstanceId    : 6fcb6578-7f42-4d93-9f23-9937f6aac1a2
    SessionId     : 1
    Name          : Job1
    ChildJobs     : System.Collections.Generic.List`1[System.Management.Automati
                    on.Job]
    Output        : System.Management.Automation.PSDataCollection`1[System.Manag
                    ement.Automation.PSObject]
    Error         : System.Management.Automation.PSDataCollection`1[System.Manag
                    ement.Automation.ErrorRecord]
    Progress      : System.Management.Automation.PSDataCollection`1[System.Manag
                    ement.Automation.ProgressRecord]
    Verbose       : System.Management.Automation.PSDataCollection`1[System.String]
    Debug         : System.Management.Automation.PSDataCollection`1[System.String]
    Warning       : System.Management.Automation.PSDataCollection`1[System.String]
    StateChanged  :
    
    
    説明
    -----------
    この例は、ConvertFrom-Csv の Header パラメーターを使用して、結果としてインポ
    ートされるオブジェクトのプロパティ名を変更する方法を示しています。
    
    最初のコマンドは Start-Job コマンドレットを使用して、ローカル コンピューター
    上で Get-Process コマンドを実行するバックグラウンド ジョブを開始します。パイ
    プライン演算子 (|) によって、結果のジョブ オブジェクトは ConvertTo-CSV コマ
    ンドレットに送られます。このコマンドレットはジョブ オブジェクトを CSV 形式に
    変換します。代入演算子 (=) によって結果の CSV が $j 変数に保存されます。
    
    2 番目のコマンドは、ヘッダーを $header 変数に保存します。既定のヘッダーとは
    異なり、このヘッダーは "HasMoreData" の代わりに "MoreData" を使用し、"JobSta
    teInfo" の代わりに "State" を使用します。
    
    3 番目のコマンドは、CSV 文字列から元のヘッダー (2 行目) を削除し、$j 変数に
    返します。
    
    4 番目のコマンドは、ConvertFrom-CSV コマンドレットを使用して、CSV 文字列をジ
    ョブ オブジェクトの CSV バージョンに変換します。このコマンドは、パイプライン
    演算子を使用して $j の内容を ConvertFrom-CSV に渡します。ヘッダーにより指定
    されたように、結果のオブジェクトは "MoreData" プロパティと "State" プロパテ
    ィを持ちます。
    
    -------------------------- 例 4 --------------------------
    
    C:\PS>(get-culture).textinfo.listseparator
    
    C:\PS> ConvertFrom-Csv -inputobject $services -UseCulture
    
    説明
    -----------
    このコマンドは、ConvertFrom-CSV コマンドレットを使用して、ConvertTo-CSV コマ
    ンドレットにより変換されたサービス オブジェクトの CSV 文字列を変換します。ま
    た、UseCulture パラメーターを使用して、現在のカルチャの区切り文字 (リスト セ
    パレーター) を使用するように ConvertFrom-CSV に指示します。
    
    UseCulture パラメーターを使用する場合、現在のカルチャの区切り記号が CSV 文字
    列に使用されている区切り文字と一致することを確認してください。そうしない場合、
    ConvertFrom-CSV は CSV 文字列からオブジェクトを生成できません。
    
    この例では、ConvertFrom-CSV コマンドを使用する前に、リスト セパレーターを検
    証するために Get-Culture コマンドが使用されています。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=135201
    ConvertTo-CSV 
    Export-CSV 
    Import-CSV 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、ConvertFrom-CSV
ご利用数: 1976884
感想・要望・問い合わせは こちら