Параметры переключения должны работать одинаково как в V1, так и в V2 (это означает, что -parent
- правильный синтаксис)
В вашем случае --parent
должен быть связан с параметром в виде строки. Это не должно интерпретироваться как переключатель. Вы можете проверить привязку через Trace-Command
Trace-Command parameterbinding -Expression { split-path c:\x\y --parent} -PSHost
Дополнительная информация:
С учетом --
: каждая строка за --
интерпретируется как аргумент, независимо от того, выглядит ли он как переключатель.
[14]: function test {
param([switch]$sw, [string]$str)
write-host switch is $sw
write-host str is $str
}
[15]: test 1
switch is False
str is 1
[16]: test -sw
switch is True
str is
[17]: test -- -sw
switch is False
str is -sw