我正在从PowerShell调用一个zip实用程序,并且难以直接获取其参数。这是代码:
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可执行调用实际上是提取到名为$ argument_1的目录,而不是存储在字符串中的实际值。我试过在几个方面逃避价值,但没有运气。不幸的是,7zip“-o”标志在它和输出目录之间没有空格......
答案 0 :(得分:5)
尝试这样的事情:
& "$sz" x $argument_0 "-o$argument_1"
&符号告诉PowerShell将表达式更像CMD.exe,但仍然允许变量扩展(以$开头的标记)。