使用参数中的数组在SharePoint PowerShell部署后命令行中调用脚本

时间:2013-07-01 14:37:05

标签: visual-studio powershell

我尝试使用数组参数调用部署后操作powerShell脚本,但没有成功。

这是脚本:

param(
        [string[]]$ModelNameList = "DefaultModelName"
    )

  Write-Host "Number of Models is: $($ModelNameList.Count)"

这是部署后的命令行:

%windir%\sysnative\windowspowershell\v1.0\powershell -File "$(ProjectDir)Scripts\Post_Deployment\Script.Post-Deployment.ps1"  -ModelNameList "m2","m1"
  

结果:模型数量为:1

在SharePoint2010 Management Shell中运行相同的脚本会返回正确的结果。

  

结果:模型数量为:2

1 个答案:

答案 0 :(得分:0)

CMD对PowerShell数组一无所知,因此它将"m2","m1"作为单个字符串传递给powershell脚本。添加

时可以看到
Write-Host $ModelNameList[0]
Write-Host $ModelNameList[0].GetType()

到您的PowerShell脚本。我认为你必须在你的脚本中拆分参数:

if ($ModelNameList[0] -match ',') {
  $ModelNameList = $ModelNameList[0].Split(',')
}