コンテンツのインポート

CSV ファイルで定義されたデータに関して、コマンドを利用してインポートを実行します。

$importData = Import-CSV "C:\Temp\test.csv"
foreach ( $row in $importData ) {
    $item = Get-Item -Path master:$($row.ItemPath) -ErrorAction SilentlyContinue

    if ($item) {
        $item.Editing.BeginEdit()
        $item["Title"] = $row.Title
        $item["Text"] = $row.Text
        $item.Editing.EndEdit() | Out-Null
    }
    else {
        Write-Host "Couldn't find: $($row.ItemPath)"
    }
}

すでにエクスポートしたデータをオフラインで変更、それをインポートを実行しています。アイテムがない場合は、アイテムがないというメッセージを出しています。これを応用して、アイテムがない場合は作成をするようにします。

$importData = Import-CSV "C:\Temp\test.csv"
foreach ( $row in $importData ) {
    $item = Get-Item -Path master:$($row.ItemPath) -ErrorAction SilentlyContinue

    if ($item) {
        $item.Editing.BeginEdit()
        $item["Title"] = $row.Title
        $item["Text"] = $row.Text
        $item.Editing.EndEdit() | Out-Null
    }
    else {
        $newItem = New-Item -Path $row.ItemPath -Name $row.Name -ItemType "Sample/Sample Item"
        $newItem.Editing.BeginEdit()
        $newItem["Title"] = $row.Title
        $newItem["Text"] = $row.Text
        $newItem.Editing.EndEdit() | Out-Null

        Write-Host "Create new Item: $($row.ItemPath)"
    }
}

PowerShell コンテンツのインポート