从powershell脚本调用可执行文件(带参数)

lar*_*ryq 4 powershell 7zip

我正在从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
Run Code Online (Sandbox Code Playgroud)

问题是7zip可执行调用实际上是提取到名为$ argument_1的目录,而不是存储在字符串中的实际值.我试过在几个方面逃避价值,但没有运气.不幸的是7zip"-o"标志在它和输出目录之间没有空格......

Goy*_*uix 5

尝试这样的事情:

& "$sz" x $argument_0 "-o$argument_1"
Run Code Online (Sandbox Code Playgroud)

&符告诉PowerShell将表达式更像CMD.exe,但仍然允许变量扩展(以$开头的标记).

  • &符号不会导致行为"更接近cmd".它只是向PowerShell表明即将发生的*字符串*应该被解释为*命令*.这允许用户通过带有空格或特殊字符的完整路径调用可执行文件或脚本.对剩下的参数没有影响. (2认同)