我需要使用PowerShell更新SharePoint列表中的所有项目。我需要更新[在每个列表项中]的列是一个有5种不同选择的选择列。我需要为每个列表项随机分配一个选项。
如果可能的话,我想为这些选择中的每一个分配概率! (即 - 选择1 = 30%几率,选择2 = 30%几率,选择3 = 30%几率,选择4 = 5%几率,选择5 = 5%几率)
我已经开始构建我的脚本,但我不确定如何处理get-random部分,或者在这种情况下我甚至使用get random。
帮助表示赞赏!!
$web = Get-SPWeb http://weburl
$list = $web.Lists["Project Tasks Backup"]
foreach ($item in $list.Items)
{
$item["Task Status"] = $choices | Get-Random
$item.Update();
}
非常感谢!
-Josh
答案 0 :(得分:0)
这将为您提供1到5之间的随机数
$rand = New-Object System.Random
$rand.next(1,6) # gets random number between 1 and 5
powershell random-ness的其他一些例子
http://tfl09.blogspot.com/2007/01/random-numbers-in-powershell.html
答案 1 :(得分:0)
假设Get-Random满足您的随机性要求,您可以首先使用您指定的权重创建一个选择数组,如下所示:
$a = @('c1')*6 + @('c2')*6 + @('c3')*6 + @('c4','c5')
然后你可以使用Get-Random从数组中随机选择一个元素:
$selected = Get-Random -InputObject $a
或者,您可以随机播放阵列:
$shuffled = Get-Random -InputObject $a -Count $a.Length