2012-11-07 19 views
7

引数の配列をpowershellスクリプトファイルに渡そうとしています。Powershellコマンドラインに引数の配列を渡す方法

私はこのようなコマンドラインをコマンドラインで渡そうとしていました。

PowerShellの-file "InvokeBuildscript.ps1" "Z:\" "コンポーネント1"、 "コンポーネント2"

しかし、それはそれはそうなパラメータを取りません。私は何が欠けていますか?引数の配列を渡す方法は?

答えて

6

test.ps1場合です

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

を試してみてください。

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

は次のようにシェルドスからそれを呼び出す:

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コンソール下

は、Windowsのコマンドプロンプトコンソール下またはWindowsのTaの配列

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

として複数の値を渡しますskスケジューラ;二重引用符が3二重引用符

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

によって置き換えられているが、ここでのトリックは-command`代わり-file` ``の明示的な使用することです、それはいくつかの

+1

を助けることができる願っています。 –