21

引数の配列をpowershellスクリプトファイルに渡そうとしています。

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

Powershell -file "InvokeBuildscript.ps1" "z:\" "Component1","component2"

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

4

3 に答える 3

25

簡単な答え: 二重引用符を追加すると役立つ場合があります...

スクリプトが「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"""

それがいくつかの助けになることを願っています

于 2015-10-20T07:43:21.913 に答える
11

試す

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
于 2012-11-07T07:10:10.603 に答える