batch-file inno-setup

batch file - Depuración de archivos por lotes que no funcionan o comando ejecutado desde el instalador de Inno Setup



batch-file inno-setup (1)

Cuando ejecuta un archivo por lotes (o cualquier comando), sus resultados (o errores) no son visibles en absoluto (especialmente cuando se runhidden indicador runhidden ) o desaparecen tan rápido que no puede leerlos.

En ese caso, ejecute el comando explícitamente a través de cmd.exe (Inno Setup lo hace implícitamente por sí solo cuando ejecuta archivos por lotes), pero esta vez con el /K lugar de un modificador /C más común. El /K garantiza que una ventana de 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 permanece después de que finaliza el setup.bat y puede ver eventuales errores.

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

Estoy tratando de instalar Tomcat como un servicio en Windows 10 a través de la línea de comandos usando Inno Setup, pero actualmente tengo problemas, esta es mi sintaxis.

[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 comando. Al principio pensé que era un problema de permisos, pero el hecho de que el comando net.exe funciona y Tomcat no lo pone en duda. Además, tengo los privilegios necesarios configurados para administrador y la aplicación necesita privilegios de administrador para iniciar el instalador, así que no creo que sea un problema del 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