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