Powershell – Executing an EXE file using a PowerShell script

powershellpowershell-2.0

I'm trying to execute an EXE file using a PowerShell script. If I use the command line it works without a problem (first I supply the name of the executable and series of parameters to invoke it):

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

But doing the exact same thing inside of a script returns an error:

The term '"C:\Program Files\Automated
QA\TestExecute 8\Bin\TestExecute.exe"
C:\temp\TestProject1\TestProject1.pjs
/run /exit /SilentMode' is not
recognized as the name of a cmdlet,
function, script file, or operable
program. Check the spelling of the
name, or if a path was included,
verify that the path is correct and
try again.

(I invoked the command using the "&" operator.)

How can I fix this problem?

Best Answer

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

or

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

UPDATE: sorry I missed "(I invoked the command using the "&" operator)" sentence. I had this problem when I was evaluating the path dynamically. Try Invoke-Expression construction:

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