2

我尝试在部署后操作中调用带有数组参数的 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 命令行管理程序中运行相同的脚本会返回正确的结果。

结果:模型数量为:2

4

1 回答 1

0

CMD对 PowerShell 数组一无所知,因此它"m2","m1"作为单个字符串传递到 powershell 脚本。添加的时候可以看到

Write-Host $ModelNameList[0]
Write-Host $ModelNameList[0].GetType()

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

if ($ModelNameList[0] -match ',') {
  $ModelNameList = $ModelNameList[0].Split(',')
}
于 2013-07-01T15:12:37.030 回答