如何传递的参数数组PowerShell的命令行(How to pass array of argum

2019-08-02 09:42发布

我想传递的参数PowerShell脚本文件的阵列。

我试图通过命令行像这样的命令行。

PowerShell的-file “InvokeBuildscript.ps1” “Z:\” “的Component1”, “COMPONENT2”

但它没有考虑似乎参数。 我在想什么? 如何传递的参数数组?

Answer 1:

简短的回答:更多双引号可以帮助...

假设脚本是“test.ps1”

param(

    [Parameter(Mandatory=$False)]
    [string[]] $input_values=@()

)
$PSBoundParameters

假设想传递数组@(123, “ABC”, “X,Y,Z”)

下Powershell的控制台中,对传递多个值作为数组

.\test.ps1 -input_values 123,abc,"x,y,z"

在Windows命令提示符控制台或Windows任务计划; 双引号是由3双引号替换

powershell.exe -Command .\test.ps1 -input_values 123,abc,"""x,y,z"""

希望它可以帮助一些



Answer 2:

尝试

Powershell -command "c:\pathtoscript\InvokeBuildscript.ps1" "z:\" "Component1,component2"

如果test.ps1是:

$args[0].GetType()
$args[1].gettype()

在DOS喜欢称呼它:

C:\>powershell -noprofile -command  "c:\script\test.ps1" "z:" "a,b"

收益:

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object
True     True     Object[]                                 System.Array


文章来源: How to pass array of arguments to Powershell commandline