简体   繁体   中英

Function parameters order in PowerShell

I have this code in one of my PowerShell scripts:

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");

As the arguments order is changed in the $arguments array, I would expect this output:

C:\command.exe anArg -other  2 1

But instead I receive a strange:

C:\command.exe anArg -other  1 2

Am I missing something obvious?

try call your function like this:

callCommandWithArguments "1" "2"

In powershell you pass arguments to function without () and just separated by space.

In your code you are passsing a single argument array of type object[]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM