← Back to Home

PowerShellでCSV、JSON、XMLファイルを読み書きする

Views: 996

You can try the commands on our interactive shell.

PowerShellでCSV、JSON、XMLファイルを読み書きする

PowerShellは、複数の方法を持っており、CSV、JSON、およびXMLファイルからデータを読み書きすることができます。この記事では、PowerShellスクリプトでこれらのファイル形式を操作する方法について説明します。

CSVファイルの読み込み

CSV(Comma Separated Values)は、テーブル状のデータを保存するための一般的な形式です。PowerShellは、Import-CSV コマンドレットを使用して CSV ファイルを容易に読み書きすることができます。

例:

# "data.csv" という名前の CSV ファイルをインポートする
$data = Import-CSV -Path "C:\path\to\data.csv"

# $data 変数の内容を表示する
$data | Format-Table

# 特定の列や行にアクセスする
$data | Select-Object -ExpandProperty "Column1", "Column2" | Format-Table

この例では、Import-CSV を使用して “data.csv” という名前の CSV ファイルをインポートし、その内容を $data 変数に格納します。次に、Format-Table を使用して $data 変数の内容を表示します。また、Select-Object を使用して特定の列や行にアクセスすることもできます。

CSV ファイルの書き込み

CSV ファイルにデータを書き込むには、Export-CSV コマンドレットを使用することができます。

例:

# "output.csv" という名前の CSV ファイルを作成する
$data = @(
    [PSCustomObject]@{
        Column1 = "Value 1"
        Column2 = "Value 2"
    }
    [PSCustomObject]@{
        Column1 = "Value 3"
        Column2 = "Value 4"
    }
)

# データを CSV ファイルに書き込む
$data | Export-CSV -Path "C:\path\to\output.csv" -NoTypeInformation

# "output.csv" ファイルの内容を表示する
Get-Content -Path "C:\path\to\output.csv"

この例では、新しい $data 変数を作成し、そこにカスタムオブジェクトを格納します。次に、Export-CSV を使用してデータを “output.csv” という名前の CSV ファイルに書き込みます。最後に、Get-Content を使用して “output.csv” ファイルの内容を表示します。

JSON ファイルの読み込み

JSON(JavaScript Object Notation)は、ウェブアプリケーション間でデータを交換するための軽量な形式です。PowerShell は、ConvertFrom-JSON コマンドレットを使用して JSON ファイルを容易に読み書きすることができます。

例:

# "data.json" という名前の JSON ファイルを読み込みます
$json = Get-Content -Path "C:\path\to\data.json" | ConvertFrom-JSON

# $json 変数の内容を表示する
$json | Format-Table

# 特定のプロパティや配列にアクセスする
$json.properties | Format-Table

この例では、Get-Content を使用して “data.json” という名前の JSON ファイルを読み込みます。次に、ConvertFrom-JSON を使用して JSON を PowerShell オブジェクトに変換します。最後に、Format-Table を使用して $json 変数の内容を表示し、特定のプロパティや配列にアクセスすることもできます。

JSON ファイルの書き込み

JSON ファイルにデータを書き込むには、ConvertTo-JSON コマンドレットを使用することができます。

例:

# 新しい JSON オブジェクトを作成します
$json = [PSCustomObject]@{
    properties = @(
        [PSCustomObject]@{
            name = "John"
            age  = 30
        }
        [PSCustomObject]@{
            name = "Jane"
            age  = 25
        }
    )
}

# データを JSON ファイルに書き込む
$json | ConvertTo-JSON -Depth 100 > "C:\path\to\output.json"

# "output.json" ファイルの内容を表示する
Get-Content -Path "C:\path\to\output.json"

この例では、新しい $json 変数を作成し、そこにカスタムオブジェクトを格納します。次に、ConvertTo-JSON を使用してデータを “output.json” という名前の JSON ファイルに書き込みます。最後に、Get-Content を使用して “output.json” ファイルの内容を表示します。

XML ファイルの読み込み

XML(Extensible Markup Language)は、マークアップ言語で、構造化されたデータを保存するために使用されます。PowerShell は、Import-XML コマンドレットを使用して XML ファイルを容易に読み書きすることができます。

例:

# "data.xml" という名前の XML ファイルをインポートする
$xml = Import-XML -Path "C:\path\to\data.xml"

# $xml 変数の内容を表示する
$xml | Format-Table

# 特定の要素や属性にアクセスする
$xml.root.Element1.Attribute1 | Format-Table

この例では、Import-XML を使用して “data.xml” という名前の XML ファイルをインポートし、その内容を $xml 変数に格納します。次に、Format-Table を使用して $xml 変数の内容を表示し、特定の要素や属性にアクセスすることもできます。

XML ファイルの書き込み

XML ファイルにデータを書き込むには、Export-XML コマンドレットを使用することができます。

例:

# 新しい XML オブジェクトを作成します
$xml = [XmlDocument]@''
$xml.AppendChild($xml.CreateElement("root"))
$xml.root.AppendChild($xml.CreateElement("element1")).SetAttribute("attribute1", "value1")
$xml.root.AppendChild($xml.CreateElement("element2")).SetAttribute("attribute2", "value2")

# データを XML ファイルに書き込む
$xml.Save("C:\path\to\output.xml")

# "output.xml" ファイルの内容を表示する
Get-Content -Path "C:\path\to\output.xml"

この例では、新しい $xml 変数を作成し、そこに XML ドキュメントを作成します。次に、Save を使用してデータを “output.xml” という名前の XML ファイルに書き込みます。最後に、Get-Content を使用して “output.xml” ファイルの内容を表示します。

結論

PowerShell は、CSV、JSON、およびXML ファイルからデータを読み書きするための複数の方法を持っています。これらのファイル形式に対応した cmdlet(例えば Import-CSVExport-CSVConvertFrom-JSON など)を使用することで、PowerShell スクリプトでこれらのファイル形式を操作することができます。このチュートリアルでは、これらの方法について説明しました。

Try it Now!