Вызов исполняемого файла (с параметрами) из сценария powershell

Я вызываю zip-утилиту из powershell, и мне трудно разобраться в ее параметрах. Вот код:

    if (-not (test-path "C:\Program Files (x86)\7-Zip\7z.exe")) {throw "C:\Program Files (x86)\7-Zip\7z.exe needed"} 
    set-alias sz "C:\Program Files (x86)\7-Zip\7z.exe" 

    $argument_1 = "c:\temp\DeployTemp\"
    $argument_0 = "c:\temp\Release\Web_Feature_2012R10_1_1112.prod.com.zip"

    sz x $argument_0 -o$argument_1

Проблема заключается в том, что исполняемый вызов 7zip буквально извлекается в каталог с именем $arguments_1 вместо фактического значения, хранящегося в строке. Я пытался избежать значения несколькими способами, но безуспешно. К сожалению, флаг 7zip "-o" не может содержать пробел между ним и выходным каталогом...

1 ответ

Решение

Попробуйте что-то вроде этого:

& "$sz" x $argument_0 "-o$argument_1"

Амперсанд говорит PowerShell обрабатывать выражение больше, чем CMD.exe, но все же допускает расширение переменной (токены, начинающиеся с $).

Другие вопросы по тегам