Estoy intentando ejecutar un archivo EXE usando un script de PowerShell. Si utilizo la línea de comandos funciona sin problemas (primero proporciono el nombre del ejecutable y la serie de parámetros para invocarlo):
"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode
Pero hacer exactamente lo mismo dentro de un script devuelve un error:
El término '"C: \ Archivos de programa \ Automated QA \ TestExecute 8 \ Bin \ TestExecute.exe" C: \ temp \ TestProject1 \ TestProject1.pjs / run / exit / SilentMode' no se reconoce como el nombre de un cmdlet, función , archivo de script o programa operable. Verifique la ortografía del nombre o, si se incluyó una ruta, verifique que la ruta sea correcta y vuelva a intentarlo.
(Invoqué el comando usando el operador "&").
¿Como puedo solucionar este problema?

Respuestas:
o
ACTUALIZACIÓN: lo siento, me perdí "(invoqué el comando usando el operador" & ")" oración. Tuve este problema cuando estaba evaluando la ruta de forma dinámica. Prueba la construcción Invoke-Expression:
fuente
Parece que está especificando tanto el EXE como su primer argumento en una sola cadena, por ejemplo;
'"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode'. Esto no funcionará. En general, invoca un comando nativo que tiene un espacio en su ruta así:Se
&espera que sea seguida por una cadena que identifica un comando: cmdlet, función, ruta absoluta o relativa de exe nativo.Una vez que consigas que esto funcione:
Empiece a trabajar en la cita de los argumentos según sea necesario. Aunque parece que sus argumentos deberían estar bien (sin espacios, sin otros caracteres especiales interpretados por PowerShell).
fuente
.\foo.exey también puede usar una ruta relativa..\..\foo.exey una ruta relativa con espacios& '..\..\path with spaces\foo.exe'.cmd /c "C:\temp\strarc.exe -cjd:M:\ | C:\temp\strarc.exe -s:8 -xd:N:\".En Powershell, cd a la ubicación del archivo .exe. Por ejemplo:
cd C: \ Usuarios \ Administradores \ Descargas
PS C: \ Usuarios \ Administradores \ Descargas> & '. \ Aaa.exe'
El instalador aparece y sigue las instrucciones en la pantalla.
fuente
Manifestación:
fuente
Al no ser desarrollador, encontré una solución al ejecutar varios comandos ps en una línea. P.ej:
Al colocar un "(comillas dobles) antes del & (ampersand), se ejecuta el ejecutable. En ninguno de los ejemplos he encontrado que esto se haya mencionado. Sin las comillas dobles, el indicador ps se abre y espera la entrada.
fuente