0

配列をコマンドライン引数としてPowerShellのexeファイルに渡す方法を知りたいですか?これが私が現在取り組んでいることです

次の形式でPowerShell関数からexeファイルを呼び出しています

$firstParam = "test1"
$secondParam = "test2"

$thirdParam = @()
$thirdParam = 'test3'
$thirdParam = $thirdParam + 'test4'

[void](& '..\SomeApp.exe' "$firstParam" "$secondParam" "$thirdParam"

これが、Application.exeの入力引数として表示されているものです。

アプリケーションのデバッグ情報 PowerShellから渡された3番目の入力パラメーターは配列でしたが、exeファイルに渡されたときに連結(スペースで区切られ)されました。

3番目の引数として「test3」、4番目の引数として「test4」を渡すことは可能ですか?

4

1 に答える 1

1

$thirdParam実装で配列にすることはできません。を書くときは$thirdParam = @()、空の配列を宣言しますが、それを文字列に再割り当てします。$thirdParam = 'test3'次に、別の文字列に割り当てます$thirdParam = $thirdParam + 'test4'。私はあなたの本来の意図についてはまだはっきりしていませんが、3番目のtest3引数とtest44番目の引数として渡す方法は次のとおりです。

$fourthParam = 'test4'
[void](& '..\SomeApp.exe' "$firstParam" "$secondParam" "$thirdParam" "$fourthParam"

固定パラメーターが2つしかなく、パラメーターをN個持つことができる場合は、次Invoke-Expressionの代わりにに切り替えInvoke-Commandます。

[void](Invoke-Expression "..\SomeApp.exe $firstParam $secondParam $thirdParam"

パラメータが正しく引用されていることを確認してください。この場合、$ thirdParamにスペースが含まれていると、パラメーター#4以降が決定されます。

于 2012-10-17T23:54:31.853 に答える