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.exe
y también puede usar una ruta relativa..\..\foo.exe
y 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