引数の配列をpowershellスクリプトファイルに渡そうとしています。
コマンドラインでこのようなコマンドラインを渡そうとしていました。
Powershell -file "InvokeBuildscript.ps1" "z:\" "Component1","component2"
しかし、見た目のパラメータは取りません。私は何が欠けていますか?引数の配列を渡す方法は?
引数の配列をpowershellスクリプトファイルに渡そうとしています。
コマンドラインでこのようなコマンドラインを渡そうとしていました。
Powershell -file "InvokeBuildscript.ps1" "z:\" "Component1","component2"
しかし、見た目のパラメータは取りません。私は何が欠けていますか?引数の配列を渡す方法は?
簡単な答え: 二重引用符を追加すると役立つ場合があります...
スクリプトが「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"""
それがいくつかの助けになることを願っています
試す
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