Powershell列删除脚本 - SharePoint

时间:2013-07-03 21:02:19

标签: sharepoint powershell

我有一个csv文件,其中包含多行文本和列。我想编写一个脚本,它将每列一个变量从一行中分配一个变量并移动到下一行。基本上,应该发生的是第一列应该存储为URL,第二列应该存储为列表,第三列应该存储为字段,然后执行这些任务。然后转到下一行。

$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”循环来完成此操作。请帮忙。

1 个答案:

答案 0 :(得分: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,然后您可以使用它来访问当前对象/行中的该值。