Executing an EXE file using a PowerShell script

前端 未结 5 1928
粉色の甜心
粉色の甜心 2020-11-29 20:30

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 p

相关标签:
5条回答
  • 2020-11-29 21:07
    & "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"
    0 讨论(0)
  • 2020-11-29 21:21

    It looks like you're specifying both the EXE and its first argument in a single string e.g; '"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode'. This won't work. In general you invoke a native command that has a space in its path like so:

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

    That is & expects to be followed by a string that identifies a command: cmdlet, function, native exe relative or absolute path.

    Once you get just this working:

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

    Start working on quoting of the arguments as necessary. Although it looks like your arguments should be just fine (no spaces, no other special characters interpreted by PowerShell).

    0 讨论(0)
  • 2020-11-29 21:21

    In the Powershell, cd to the .exe file location. For example:

    cd C:\Users\Administrators\Downloads

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

    The installer pops up and follow the instruction on the screen.

    0 讨论(0)
  • 2020-11-29 21:27

    Not being a developer I found a solution in running multiple ps commands in one line. E.g:

    powershell "& 'c:\path with spaces\to\executable.exe' -arguments ; second command ; etc
    

    By placing a " (double quote) before the & (ampersand) it executes the executable. In none of the examples I have found this was mentioned. Without the double quotes the ps prompt opens and waits for input.

    0 讨论(0)
  • 2020-11-29 21:33
    1. clone $args
    2. push your args in new array
    3. & $path $args

    Demo:

    $exePath = $env:NGINX_HOME + '/nginx.exe'
    $myArgs = $args.Clone()
    
    $myArgs += '-p'
    $myArgs += $env:NGINX_HOME
    
    & $exepath $myArgs
    
    0 讨论(0)
提交回复
热议问题