2010-05-11 17:31:57 +0000 2010-05-11 17:31:57 +0000
134
134

¿Cómo se puede ejecutar un archivo por lotes sin lanzar una "ventana de comandos"?

En Windows XP, ¿puedo ejecutar un archivo por lotes (.bat o .cmd), a través de un atajo, sin una “ventana negra”?

Respuestas (9)

88
88
88
2010-05-11 19:55:49 +0000

Guarda lo siguiente como wscript, por ejemplo, hidecmd.vbs después de reemplazar “testing.bat” con el nombre de tu archivo batch.

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false

El segundo parámetro de oShell.Run es el valor intWindowStyle 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

45
45
45
2012-02-15 09:52:03 +0000

Esto es sólo una simplificación de la respuesta de Shaji. Puede ejecutar su script por lotes a través de un VBScript (.vbs) script como este:

'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

Esto ejecutará su archivo por lotes sin que se muestre la ventana de comandos.

21
21
21
2014-01-10 17:50:44 +0000

Sólo para ampliar las respuestas de “Usar scripts de Windows” (que considero las mejores porque ya está incorporado) aquí está cómo hacerlo usando un script 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.

If WScript.Arguments.Count >= 1 Then
    ReDim arr(WScript.Arguments.Count-1)
    For i = 0 To WScript.Arguments.Count-1
        Arg = WScript.Arguments(i)
        If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
      arr(i) = Arg
    Next

    RunCmd = Join(arr)
    CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If

Así que, por ejemplo, guarda el archivo anterior como NoShell.vbs en algún lugar y luego llama:

NoShell.vbs c:\foo\my_batch_file.bat

Finalmente, si quieres ejecutar esto desde algún lugar que no entienda el archivo .vbs (como una “Herramienta externa” en Visual Studio), querrás llamar a C:\Windows\System32\wscript.exe con el archivo vbs como primer parámetro y tu archivo por lotes como segundo.

9
9
9
2010-05-11 19:50:45 +0000

Puedes cambiar las propiedades del atajo para ejecutarlo minimizado.

Para ejecutarlo de forma completamente invisible necesitarás algo más, como Windows Scripting.

9
9
9
2010-05-11 17:36:13 +0000

Use start con la opción ‘/B’. Por ejemplo:

@echo off
start /B go.bat
6
6
6
2012-10-22 21:17:19 +0000

GPL libre y de código abierto “Create Hidden Process” 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 usted especifique para que no muestre una ventana o un botón de la barra de tareas, tal como lo hacen los virus.

No es un virus. No oculta el proceso de destino para que no aparezca en el gestor de tareas, por ejemplo. Y, por supuesto, el código fuente está incluido, por lo que puedes ver que es muy pequeño y no hace nada más que ejecutar cualquier programa que le des.

Ni siquiera tienes que confiar en que el chp.exe incluido realmente fue construido a partir de esa fuente. Puedes seguir adelante y descartar el chp.exe incluido y compilar el tuyo propio a partir de la fuente, y todas las herramientas necesarias para hacerlo son incluso gratuitas y descargables.


También puedes hacer un atajo al archivo .bat o .cmd, y luego hacer clic con el botón derecho del ratón en el atajo, Propiedades, Pestaña de atajos, Ejecutar: Minimizado. Luego, en las tareas programadas, usa el atajo en lugar del archivo .bat/.cmd directamente. Esto evitará que aparezca una ventana, pero seguirá apareciendo un botón de la barra de tareas.

6
6
6
2013-05-29 03:48:54 +0000

Puedes usar scripts de ventanas como AutoIt .

Como ejemplo, sólo escribe esto al editor de scripts de AutoIt. Es bastante simple

Run("C:\test\batchfile.bat", "", @SW_HIDE)

Si quieres ejecutarlo en un bucle,

$x=0
Do
 Run("C:\test\batchfile.bat", "", @SW_HIDE)
 Sleep(5000)
Until $x = 1

Compílalo como .exe - y ya está.


De la misma manera, en AutoHotkey :

#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
6
6
6
2014-10-27 08:23:11 +0000

Una solución simple, sin usar ningún programa extra.

  1. Crea el archivo por lotes que quieras ejecutar y pruébalo.
  2. Crear un atajo para ello.
  3. 3. Editar las propiedades del acceso directo: en la pestaña Acceso directo, seleccione Ejecutar minimizado. Asigne una tecla de acceso directo a él y listo!

¡Buena suerte!

5
5
5
2010-05-12 16:03:41 +0000

Use Inicio oculto (cuesta $20)

Inicio oculto - Ejecutar aplicaciones y archivos por lotes sin una ventana de consola o un aviso UAC

Las aplicaciones de consola y los archivos por lotes se ejecutan regularmente en el inicio de Windows o en una programación. El principal inconveniente de esto es que cada aplicación abre una ventana de consola que parpadea en la pantalla. Hidden Start (o Hstart) es una ligera utilidad de línea de comandos que permite ejecutar aplicaciones de consola y archivos por lotes sin ninguna ventana en segundo plano, manejar la elevación del privilegio UAC en Windows 7 y Vista, iniciar múltiples comandos en paralelo o de forma síncrona, y mucho más.