Powershellでのパラメータ受け渡しの動作を理解できません。Powershellコマンドが動的に構築されました - パラメータ渡しの問題
言って、私はスクリプトcallScript.ps1
param($a="DefaultA",$b="DefaultB")
echo $a, $b
言って、別のスクリプトがcallScript.ps1
を呼び出しています。
.\callScript.ps1
# outputs DefaultA followed by DefaultB as expected
.\callScript.ps1 -a 2 -b 3
# outputs 2 followed by 3 as expected
$arguments='-a 2 -b 3'
callScript.ps1 $arguments
# I expected output as previous statement but it is as follows.
# -a 2 -b 3
# DefaultB
上記のようにコマンドを動的に構築することでPowerShellスクリプトを実行するにはどうすればよいですか? $arguments
というスクリプトがという変数がcallScript.ps1
という変数に解釈される理由を説明してください。あなたは本当にあなたが持っているとしてそれを行うために必要な場合には、PARAM内の値を指定する必要が$a
のためのパラメータとして
'-a 2 -b 3'
:ここで何が起こっている
。したがって、DefaultB(これは欠落しています)にフォールバックしています。私は代わりに配列を受け入れるように関数をリファクタリングすることを検討すべきだと思います。少なくとも、引数を1つの引数として渡す必要があるのであれば、少なくとも。 – Akaino