scripting - ocultar - Ejecutando un CMD o BAT en modo silencioso
ocultar bat (9)
¿Cómo puedo ejecutar un archivo CMD o .bat en modo silencioso? Estoy tratando de evitar que la interfaz CMD se muestre al usuario.
Creo que esta es la solución más fácil y más corta para ejecutar un archivo por lotes sin abrir la ventana de DOS, puede ser muy molesto cuando desea programar un conjunto de comandos para que se ejecuten periódicamente, para que la ventana de DOS siga apareciendo, aquí está su solución . Use una secuencia de comandos VBS para llamar al archivo por lotes ...
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "C:/Batch Files/ mycommands.bat" & Chr(34), 0
Set WshShell = Nothing
Copie las líneas de arriba a un editor y guarde el archivo con la extensión .VBS. Edite el nombre de archivo .BAT y la ruta en consecuencia.
Estoy bastante seguro de que me gusta este método lo mejor. Copie y pegue el siguiente código en un archivo .vbs. Desde allí, llamará al archivo por lotes ... así que asegúrese de editar la última línea para especificar la ruta y el nombre del archivo por lotes (que debe contener el archivo que desea iniciar o realizar las acciones que necesita realizar)
Const HIDDEN_WINDOW = 12
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!//" & strComputer & "/root/cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = HIDDEN_WINDOW
Set objProcess = GetObject("winmgmts:root/cimv2:Win32_Process")
errReturn = objProcess.Create("C:/PathOfFile/name.bat", null, objConfig, intProcessID)
Definitivamente funcionó para mí. Los comentarios son bienvenidos :)
He propuesto en la pregunta de una forma de ejecutar un archivo por lotes en segundo plano ( no se muestran ventanas de DOS )
Eso debería responder a su pregunta.
Aquí está:
Desde su primer script, llame a su segundo script con la siguiente línea:
wscript.exe invis.vbs run.bat %*
En realidad, llamas a un script vbs con:
- el [camino] / nombre de su script
- todos los demás argumentos que necesita tu script (
%*
)
Entonces, invis.vbs llamará a su script con el método Windows Script Host Run () , que toma:
- intWindowStyle: 0 significa "ventanas invisibles"
- bWaitOnReturn: falso significa que su primer script no necesita esperar a que termine su segundo script
Vea la pregunta para la secuencia de comandos completa invis.vbs:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
^
means "invisible window" ---|
Actualización después de los comentarios de Tammen:
Si está en una sesión de DOS y desea iniciar otro script "en segundo plano", un simple /b
(como se detalla en la misma pregunta antes mencionada ) puede ser suficiente:
Puede utilizar
start /b second.bat
para iniciar un segundo archivo de proceso por lotes de forma asincrónica desde el primero que comparte su primera ventana.
Incluye la frase
@echo off
justo en la parte superior de tu secuencia de comandos bat.
Me crearon RunApp para hacer ese trabajo y también lo uso en mi entorno de producción, espero que sea útil.
La configuración como a continuación:
archivo: config.arg
:style:hidden
MyBatchFile.bat
arg1
arg2
Y ejecute runapp.exe
en runapp.exe
lugar.
Prueba SilentCMD . Este es un pequeño programa gratuito que ejecuta un archivo por lotes sin mostrar la ventana del símbolo del sistema.
Si quiero ejecutar command promt en modo silencioso, entonces hay un comando vbs simple:
Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"
si quería abrir una URL en cmd en silencio , entonces aquí hay un código:
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("iexplore.exe http://otaxi.ge/log/index.php", 0)
''wait 10 seconds
WScript.sleep 10000
Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"
Utilice Advanced BAT to EXE Converter desde http://www.battoexeconverter.com
Esto le permitirá incrustar cualquier binario adicional con su archivo por lotes en un solo EXE completamente silencioso y su freeware
Utilice Bat To Exe Converter para hacer esto
http://download.cnet.com/Bat-To-Exe-Converter/3000-2069_4-10555897.html
(Elija Enlace de descarga directa )
1 - Abre Bat to Exe Converter, selecciona tu archivo Bat.
2 - En el menú de opciones, seleccione "Aplicación invisible", luego presione el botón compilar.
¡Hecho!