Вызов исполняемого файла (с параметрами) из сценария 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, но все же допускает расширение переменной (токены, начинающиеся с $).