2011-01-12 36 views
6

Tengo un archivo por lotes, este archivo por lotes no se iniciará automáticamente, solo se ejecutará cuando haga doble clic en él.
¿Puedo ejecutar el archivo por lotes en el fondo cuando hago doble clic en él.Ejecutar archivo por lotes en el fondo

Respuesta

1

generalmente necesitaría algo más para ejecutar el script en esa casa es decir, Crear un acceso directo, y establecer el campo "Ejecutar" para el acceso directo a "Minimizado".

1

Una vez que haga clic o elimine la pestaña cmd.exe que el archivo de proceso por lotes ejecuta, está "en el fondo" - No estoy seguro de lo que quiere, pero parece que podría estar preguntando cómo ejecutar el archivo por lotes sin mostrar la ventana cmd.exe.

Si es así puedo pensar de dos maneras: primero, puede crear un acceso directo al archivo por lotes, hacer clic derecho y en las propiedades establecer el acceso directo para ejecutar minimizado (debe ser una opción desplegable al lado de Ejecutar)

También puede envolver la invocación del archivo por lotes en un archivo VBScript utilizando el objeto de shell de Windows Script Host (calling the Run method) para ejecutar el archivo por lotes de forma invisible. Pasar 0 como el parámetro intWindowStyle suprimirá la visualización de una ventana o cualquier cosa.

7

Bueno, puede comenzar minimizado con start, si eso es suficiente. Realmente ocultarlo es difícil (aunque puedo pensar en una opción en este momento).

Básicamente debe determinar si el lote se ha iniciado haciendo doble clic en él. Usted puede hacer esto mediante la definición de una variable especial y buscarlo:

@echo off 
if not defined FOO (
    set FOO=1 
    start /min "" %~0 
    exit /b 
) 

rem here whatever you wanted to do originally in the batch 

Mientras no se define la variable FOO (que es probablemente el defecto en casi todas partes), este lote se lanzará minimiza de nuevo, pero con la variable definida primero. Los entornos se pasan a los subprocesos, por lo que esto funciona.

+0

Este es mi método favorito. Me encanta este fragmento. – djangofan

1

@Ghyath Serhal He usado cmdow para hacer esto en otro programa, es una aplicación externa que se puede utilizar para modificar el símbolo del sistema. Para usarlo, deberá ingresar este código (ver a continuación) en su propio archivo por lotes, o en el símbolo del sistema, donde ejecutará 'BatchFile.bat' con una ventana de terminal oculta. No he encontrado una forma de usar esto en un solo archivo por lotes, pero hoy solo me enteré de esto.

cmdow /run /hid 'BatchFile.bat'

Espero que esto ayude.

Cuestiones relacionadas