使用PowerShell脚本执行一个EXE文件

35 浏览
0 Comments

使用PowerShell脚本执行一个EXE文件

我正在尝试使用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、函数、脚本文件或可操作的程序的名称。请检查名称的拼写,或如果包括路径,请验证路径是否正确,然后重试。

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

我该如何解决这个问题?

admin 更改状态以发布 2023年5月21日
0
0 Comments

看起来你正在用一个字符串同时指定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" 

也就是说,& 后面期望有一个字符串来标识一个命令:cmdlet、函数、本地exe的相对或绝对路径。

一旦你让它正常工作:

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

开始必要的参数引用工作。虽然看起来你的参数应该没问题(没有空格,也没有其他由 PowerShell 解析的特殊字符)。

0
0 Comments

& "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构造:

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

0