Depuración del archivo por lotes no operativo o comando ejecutado desde el instalador Inno Setup

Estoy tratando de instalar Tomcat como un servicio en Windows 10 a través de la línea de comandos usando Inno Setup, pero me estoy encontrando con problemas, esta es mi syntax.

[Run] Filename: net.exe; Flags: runascurrentuser; parameters: "user elt_user TrackFox38# /add" ; installs tomcat makes it run as a service NOTE THAT IN INNO THIS IS A SINGLE LINE Filename: {src}\..\apache-tomcat-7.0.69\bin\service.bat; Flags: runascurrentuser; parameters: "tomcat7 //IS//Tomcat7 --DisplayName='Apache_Tomcat_7' ^ --Install='C:\Program Files\Tomcat\bin\tomcat7.exe' --Jvm=auto ^ --StartMode=jvm --StopMode=jvm ^ --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start ^ --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop" 

Lo extraño es que funciona cuando lo pego manualmente en la línea de comandos. Al principio, pensé que era un problema de permisos, pero el hecho de que el comando net.exe funciona y Tomcat no llama eso en cuestión. También tengo los privilegios necesarios configurados para el administrador y la aplicación necesita privilegios de administrador para iniciar el instalador, por lo que no creo que sea un problema para el usuario. Soy nuevo en Inno Setup y estoy un poco atrapado aquí.

Salida de depuración:

 [09:18:54.770] Filename: C:\program\Output\..\apache-tomcat- 7.0.69\bin\service.bat [09:18:54.771] Parameters: tomcat7 //IS//Tomcat7 --DisplayName='Apache_Tomcat_7' ^ --Install='C:\Program Files\Tomcat\bin\tomcat7.exe' --Jvm=auto ^ --StartMode=jvm --StopMode=jvm ^ --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start ^ --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop [09:18:54.867] Process exit code: 0 

Cuando ejecuta un archivo de proceso por lotes (o cualquier comando), sus resultados (o errores) no son visibles (particularmente cuando se runhidden indicador de runhidden ) o desaparecen tan rápidamente que no puede leerlos.

En ese caso, ejecute el comando explícitamente a través de cmd.exe (Inno Setup lo hace implícitamente solo cuando ejecuta archivos por lotes), pero esta vez con el /K lugar de un interruptor más común /C El /K asegura que la ventana de la consola no se cierre por sí sola.

Entonces, en lugar de:

 [Run] Filename: {app}\setup.bat; Parameters: "arguments" 

o un equivalente:

 [Run] Filename: {cmd}; Parameters: "/C ""{app}\setup.bat"" arguments" 

Utilizar:

 [Run] Filename: {cmd}; Parameters: "/K ""{app}\setup.bat"" arguments" 

Luego, la ventana de la consola se queda después de que setup.bat finaliza y usted puede ver eventuales errores.

Si el archivo de proceso por lotes comienza con @echo off comando @echo off común que oculta los comandos que se están ejecutando, comentar temporalmente esta línea con rem también ayudará a eliminar errores.

enter image description here