所以基本上我需要从命令行运行我的ps1脚本并将我的自定义参数传递给我的脚本。我的脚本需要一个String数组,但是当我运行该命令时,我得到一个错误,即找不到接受参数' X1'
的位置参数这是我的命令行:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -NoProfile -NonInteractive -File "C:\Program Files\MSBuild\MyScript.ps1" -builds "X1” “X2" "X3" "X4"
我的理解是它知道如何处理第一个参数' X1'但不是第二次,所以它崩溃了?有什么想法吗?
答案 0 :(得分:2)
我无法解释为什么-file
无效,但该参数还有其他已知问题。当您使用它时,您无法从PowerShell获得正确的退出代码。使用-command
确实有效:
Powershell.exe -ExecutionPolicy RemoteSigned -NoProfile -NonInteractive -Command "& {& 'C:\Program Files\MSBuild\myscript.ps1' -builds x1,x2,x3}"
答案 1 :(得分:2)
您需要使用-Command
参数而不是-File
参数。请注意下面屏幕截图和示例脚本中的行为更改。
[CmdletBinding()]
param (
[int[]] $MyInts
)
foreach ($MyInt in $MyInts) {
$MyInt + 1;
}