0

PowerShellスクリプトの1つに次のコードがあります。

function callCommandWithArguments([String] $arg1, [String] $arg2)
{
    [string]$pathToCommand = "C:\command.exe";
    [Array]$arguments = "anArg", "-other", "$arg2", "$arg1";
# the real code is
#   & $pathToCommand $arguments;
# but was not working, so I change it to debug
    Write-Host $pathToCommand $arguments;
}

callCommandWithArguments("1", "2");

配列内で引数の順序が変更されているため、次の$arguments出力が期待されます。

C:\command.exe anArg -other  2 1

しかし、代わりに私は奇妙なものを受け取ります:

C:\command.exe anArg -other  1 2

明らかな何かが欠けていますか?

4

1 に答える 1

4

次のように関数を呼び出してみてください。

callCommandWithArguments "1" "2"

PowerShellでは、スペースなしで、スペースで区切って関数に引数を渡します()

あなたのコードでは、タイプの単一の引数配列を渡していますobject[]

于 2012-10-25T13:43:42.870 に答える