2012-11-07 185 views
7

我想將參數數組傳遞給PowerShell腳本文件。如何將參數數組傳遞給Powershell命令行

我試圖在命令行中像這樣傳遞命令行。

Powershell的-file 「InvokeBuildscript.ps1」 「Z:\」 「的Component1」, 「COMPONENT2」

但它並不需要它似乎是參數。我錯過了什麼?如何傳遞參數數組?

回答

6

嘗試

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 
8

簡短的回答:更多雙引號可以幫助...

假設腳本是 「test.ps1」

param(

    [Parameter(Mandatory=$False)] 
    [string[]] [email protected]() 

) 
$PSBoundParameters 

假設想傳遞數組@(123, 「ABC」,」 X,Y,Z「)

在Powershell的控制檯中,對傳遞多個值作爲數組

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

在Windows命令提示控制檯或用於Windows的Ta sk調度程序;雙引號是由3雙引號

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

代替希望它可以幫助一些

+1

這裏的技巧是使用顯式'的-command'代替'-file'。 –

相關問題