Esta pregunta ya tiene una respuesta aquí:
En Windows XP, ¿puedo ejecutar un archivo por lotes (.bat o .cmd), a través de un acceso directo, sin una "ventana negra"?
windows
command-line
batch-file
shortcuts
dugres
fuente
fuente
Respuestas:
Guarde lo siguiente como wscript, por ejemplo, hidecmd.vbs después de reemplazar "testing.bat" con el nombre de su archivo por lotes.
El segundo parámetro de
oShell.Run
es elintWindowStyle
valor que indica la apariencia de la ventana del programa y el valor cero es para la ventana oculta.La referencia está aquí http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
fuente
.bat
archivo como administrador o usando este método?Esto es solo una simplificación de la respuesta de Shaji. Puede ejecutar su script por lotes a través de un script VBScript (.vbs) como este:
Esto ejecutará su archivo por lotes sin mostrar ninguna ventana de comandos.
fuente
.bat
archivo como administrador con este método?Solo para ampliar las respuestas "Usar secuencias de comandos de Windows" (que considero mejor porque ya está integrado), aquí se explica cómo hacerlo mediante el uso de una secuencia de comandos de envoltura única y pasando el nombre del archivo por lotes "real" como parámetro. Se pasarán parámetros adicionales al archivo por lotes.
Entonces, por ejemplo, guarde el archivo anterior como en
NoShell.vbs
algún lugar y luego llame:Finalmente, si está buscando ejecutar esto desde algún lugar que no entienda el archivo .vbs (como "Herramientas externas" en Visual Studio), querrá llamar
C:\Windows\System32\wscript.exe
con el archivo vbs como primer parámetro y su archivo por lotes como el segundo.fuente
"C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat
."C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat
. No importa lo que intente para el camino: comillas dobles alrededor de todo,% 20 en lugar del espacio, o una combinación de esos dos, nada funciona. Recibo un mensaje de error que me dice que no se puede encontrar el archivo o que no sucede nada. ¿Esto se debe a un error del usuario de mi parte, una limitación de Windows con el campo Destino para accesos directos o un problema con el script vbs en el que no maneja las rutas de archivos con espacios correctamente?Puede cambiar las propiedades del acceso directo para ejecutar minimizado.
Para ejecutarlo de forma completamente invisible, necesitará algo más, como Windows Scripting.
fuente
Use comenzar con la opción '/ B'. Por ejemplo:
fuente
start /b
solo ejecutará el programa en la consola actualmente asignada en lugar de generar una nueva. Obtendrá uno nuevo de todos modos ya que el lote debe ejecutarse con cmd (que, a su vez [sorpresa], abre una consola).SYSTEM
en C / C ++).cmd /c foo.cmd
. No hay absolutamente ninguna necesidad de usarstart
en esos escenarios, y diría quesystem
no debería usarse a favorCreateProcess
. Al iniciar un archivo por lotes, ya depende de una plataforma, también podría usar las mejores herramientas para el trabajo.cmd /c
antes. El comando cmd es lo que se necesita en mi caso, pero todas las respuestas que Stackexchange encontrado hasta ahora, acerca de un archivo por lotes se ejecuta otro archivo por lotes, tienen respuestas más a usar el inicio ...start /b go.bat
no asignará una nueva consola (es decir, una instancia de conhost.exe, o un hilo en csrss.exe antes de Windows 7). Sin embargo, hará un desastre ya que el script por lotes se ejecuta con una nueva instancia de cmd.exe que está conectada a la misma consola . Ambas instancias del shell competirán para leer la entrada de la consola, generalmente alternando. Necesita/w
(por ejemplostart /b /w go.bat
) para esperar en la segunda instancia, que es similar a usarcmd /c
if usingsystem
. Además, si llamaCreateProcess
, ejecutego.bat
directamente. No hay necesidad de esocmd /c
.Código abierto gratuito de GPL "Crear proceso oculto"
http://www.commandline.co.uk/chp/
Microsoft Security Essentials, y probablemente la mayoría de los otros escáneres de virus / malware tratarán el ejecutable, chp.exe, como un virus porque oculta cualquier programa que especifique para mostrar una ventana o un botón de la barra de tareas, al igual que los virus.
No es un virus. No oculta que el proceso de destino aparezca en el administrador de tareas, por ejemplo. Y, por supuesto, el código fuente está incluido para que pueda ver que es muy pequeño y no hace nada más que ejecutar cualquier programa que le dé.
Ni siquiera tiene que confiar en que el chp.exe incluido realmente se creó a partir de esa fuente. Puede continuar y descartar el chp.exe incluido y compilar el suyo desde la fuente, y todas las herramientas necesarias para hacerlo son incluso gratuitas y descargables.
También puede hacer un acceso directo al archivo .bat o .cmd, luego hacer clic derecho en el acceso directo, Propiedades, pestaña Acceso directo, Ejecutar: minimizado. Luego, en las tareas programadas, use el acceso directo en lugar del archivo .bat / .cmd directamente. Eso evitará que aparezca una ventana, pero aún aparecerá un botón de la barra de tareas.
fuente
Puede usar secuencias de comandos de ventana como AutoIt .
Como ejemplo, solo escriba esto en el editor de script AutoIt. Es bastante simple
Si quieres ejecutarlo en un bucle,
Compílelo como .exe, y ya está.
Del mismo modo, en AutoHotkey :
fuente
Use Hidden Start (cuesta $ 20)
fuente
Solución simple, sin usar ningún programa adicional.
¡Buena suerte!
fuente