Два способа сделать это:
Отделите exe от аргументов. Сделайте все ваши динамические вещи для аргументов, но вызовите exe как обычно с переменной, содержащей аргументы после:
$argument= '"D:\spaced path\HelloWorld.txt"'
$exe = 'notepad'
&$exe $argument
#or
notepad $argument
Если у вас более одного аргумента, вы должны сделать его массивом, если он будет отделен от exe-части вызова:
$arguments = '"D:\spaced path\HelloWorld.txt"','--switch1','--switch2'
$exe = 'notepad'
&$exe $arguments
Использовать выражение-выражение. Если все должно быть в строке, вы можете вызвать строку, как если бы это было нормальное выражение. Invoke-Expression
также имеет псевдоним iex
.
$exp = 'notepad "D:\spaced path\HelloWorld.txt"'
Invoke-Expression $exp
В любом случае содержимое аргументов и исполняемого файла должно быть заключено в кавычки и соответствующим образом отформатировано, как если бы оно было записано прямо в командной строке.