首页 文章

使用PowerShell脚本执行EXE文件

提问于
浏览
81

我正在尝试使用PowerShell脚本执行EXE文件 . 如果我使用命令行它没有问题(首先我提供可执行文件的名称和一系列参数来调用它):

"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode

但是在脚本中执行完全相同的操作会返回错误:

术语'“C:\ Program Files \ Automated QA \ TestExecute 8 \ Bin \ TestExecute.exe”C:\ temp \ TestProject1 \ TestProject1.pjs / run / exit / SilentMode'无法识别为cmdlet的名称,功能,脚本文件或可操作程序 . 检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试 .

(我使用“&”运算符调用了命令 . )

我该如何解决这个问题?

3 回答

  • 26

    在Powershell中,cd到.exe文件位置 . 例如:

    cd C:\ Users \ Administrators \ Downloads

    PS C:\ Users \ Administrators \ Downloads> & '.\aaa.exe'

    弹出安装程序并按照屏幕上的说明进行操作 .

  • 94

    看起来你要在一个字符串中指定EXE和它的第一个参数,例如; '"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode' . 这不行 . 通常,您调用一个在其路径中有空格的本机命令,如下所示:

    & "c:\some path with spaces\foo.exe" <arguments go here>
    

    那是 & 期望后跟一个标识命令的字符串:cmdlet,function,native exe relative或absolute path .

    一旦你完成了这个工作:

    & "c:\some path with spaces\foo.exe"
    

    根据需要开始引用参数 . 虽然看起来你的参数应该没问题(没有空格,也没有PowerShell解释的其他特殊字符) .

  • 0
    & "C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode
    

    要么

    [System.Diagnostics.Process]::Start("C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe", "C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode")
    

    更新:抱歉,我错过了“(我使用”&“运算符调用命令)”句子 . 我在动态评估路径时遇到了这个问题 . 尝试调用表达式构造:

    Invoke-Expression "& `"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe`" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode"
    

相关问题