0

複数行のテキストと列を含む csv ファイルがあります。各列に 1 行ずつ変数を割り当て、次の行に移動するスクリプトを作成したいと考えています。基本的には、最初の列を URL として、2 番目をリストとして、3 番目をフィールドとして保存し、これらのタスクを実行する必要があります。次に、次の行に移動します。

$web = Get-SPWeb (Your site URL)
$list = $web.Lists[“Your List Name”]
$field = $list.Fields[“Your Column Name”]
$field.AllowDeletion = “true”
$field.Sealed = “false”
$field.Delete()
$list.Update()
$web.Dispose()

行ごとに実行できますが、これを行うより良い方法を見つけたいと思います。さまざまな方法でコードを記述しようとしましたが、「foreach」ループでこれを行う方法がわかりません。助けてください。

4

1 に答える 1

1

CSV フィールドの形式を知らなければ、確かなことは言えませんが、コードを適合させるという点では、次のようなことがうまくいく可能性があります (ここでは、URL、リスト、および列の csv 列名があると仮定します)。

$csv = import-csv C:\yourpath\yourfile.csv
$csv | select * | foreach {
    $web = Get-SPWeb ($_.URL)
    $list = $web.Lists[$_.List]
    $field = $list.Fields[$_.Column]
    $field.AllowDeletion = “true”
    $field.Sealed = “false”
    $field.Delete()
    $list.Update()
    $web.Dispose()
}

sharepoint 要素をテストすることはできませんが、csv をインポートして (ヘッダー行がある場合)、foreach ループを使用して各オブジェクト/行を反復処理すると機能します。

ヘッダー行の重要性は、Import-CSV が、現在のオブジェクト/行でその値にアクセスするために使用できる各ヘッダーの名前の NoteProperty を自動的に作成することです。

于 2013-07-04T10:09:52.087 に答える