Por el momento, mi archivo por lotes se ve así:
myprogram.exe param1
El programa se inicia pero la ventana de DOS permanece abierta. ¿Cómo puedo cerrarlo?
windows
batch-file
Señor dev
fuente
fuente
Respuestas:
Puede usar la palabra clave de salida. Aquí hay un ejemplo de uno de mis archivos por lotes:
fuente
exit
en un archivo por lotes.start "VPN" "C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"
Use el comando de inicio para evitar que el archivo por lotes espere al programa. Solo recuerde poner una comilla doble vacía delante del programa que desea ejecutar después de "Inicio". Por ejemplo, si desea ejecutar Visual Studio 2012 desde un comando por lotes:
Observe la doble cita después del inicio.
fuente
start <window name> <program name>
Mira el comando START, puedes hacer esto:
Por ejemplo, este archivo por lotes esperará hasta que salga el bloc de notas:
Sin embargo, esto no:
fuente
De mi propia pregunta :
funciona si inicia el programa desde una sesión DOS existente.
Si no, llame a un script vb
El método Windows Script Host Run () toma:
Aquí está invis.vbs:
fuente
Esto es lo único que funcionó para mí cuando intenté ejecutar una clase java desde un archivo por lotes:
start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm
Puede personalizar el
start
comando como desee para su proyecto, siguiendo la sintaxis adecuada:fuente
Deberías probar esto. Inicia el programa sin ventana. En realidad, parpadea por un segundo, pero desaparece con bastante rapidez.
fuente
"title"
opción es importante. Si la ruta del programa incluye espacios, debe estar entre comillas, por lo que debemos agregarla"title"
para evitar fallas.Cómo resolver el "problema espacial" y las dependencias locales:
fuente
Ya hay muchas respuestas para esta pregunta, pero estoy publicando esto para aclarar algo importante, aunque este no siempre sea el caso:
Puede causar problemas en algunas versiones de Windows, ya que
Start
realmente espera que el primer conjunto de comillas sea un título de Windows. Por lo tanto, se recomienda citar primero un comentario o un comentario en blanco:o
fuente
Mi solución para hacer esto desde la GUI:
Cree un acceso directo al programa que desea ejecutar;
Edite las propiedades del acceso directo;
Cambia el
TARGET
campo a%COMSPEC% /C "START "" "PROGRAMNAME""
;Cambiar el
RUN
campo a minimizado.¡Listo! Mira cómo te gusta ...
PD: los parámetros del programa se pueden insertar entre las dos comillas finales; la
PROGRAMNAME
cadena puede ser un nombre de archivo, una ruta relativa o absoluta: si coloca una ruta absoluta y borra la letra de la unidad y el punto y coma, entonces esto funcionará en una unidad de memoria USB sin importar qué letra le asigne la computadora host. . (también, si coloca el acceso directo en la misma carpeta y precede al nombre del archivo del programaPROGRAMNAME
con la%CD%
variable, las rutas siempre coincidirán; se puede usar el mismo truco en elSTART IN
campo).fuente
Si este archivo por lotes es algo que desea ejecutar según lo programado o siempre; puede usar la herramienta de programación de Windows y no se abre en una ventana cuando inicia el archivo por lotes.
Para abrir
Task Scheduler
:'cmd'
taskschd.msc
-> enterDesde el lado derecho, haga clic
Create Basic Task
y siga los menús.Espero que esto ayude.
fuente
Aquí está mi solución preferida. Se toma de una respuesta a una pregunta similar.
Use una secuencia de comandos VBS para llamar al archivo por lotes:
Copie las líneas anteriores a un editor y guarde el archivo con la extensión .VBS.
fuente