У меня есть командный файл test.bat для запуска сценария powershell:
@pushd "C:\myscripts"
powershell .\test.ps1 arg1 "arg2 with space" arg3
@popd
Скрипт test.ps1 (находится в C: \ myscripts) очень прост, например:
# just print out the arguments
Write-Output ("args count: {0}" -f $args.length)
$args
Затем я попытался запустить test.bat. Я должен получить три аргумента, передаваемых PS1, но я получил следующий результат:
Количество аргументов: 5
arg1
арг2
с
пространство
arg3
То, что я ожидал в скрипте, args [0] должно быть arg1, а args [1] должно быть «arg2 with space», а args3 [2] должно быть arg3. Я не могу понять, почему скрипт на самом деле получает 5 аргументов.
Как передать параметры из cmd или batch в powershell так, как я ожидал? Как это:
args count: 3
arg1
arg2 with space
arg3