En Dos lotes de archivos pulse la tecla INTRO para abrir el programa o presione cualquier otra tecla para salir del bat

Tengo un archivo de proceso por lotes de DOS que muestran algunos de los resultados en la consola cmd. Quiero que los usuarios de pulsar la tecla Enter para ejecutar el programa o presione cualquier otra tecla del teclado para salir.

No quiero usar opciones/opciones porque en ese caso el usuario tendrá que introducir al menos algo que necesito para comprobar y ajustar la acción.

Ejemplo:
Al final de la consola cmd decir algo como esto
Pulse ENTER para abrir abc.exe o pulse cualquier tecla del teclado para salir!

Gracias!

InformationsquelleAutor user521875 | 2010-11-26

2 Kommentare

  1. 3

    Algo como esto

    @ECHO OFF
    SET Choice=
    SET /P Choice=Press enter to open abc.exe (and something else to quit)
    IF "%Choice%"=="" GOTO Start
    GOTO End
    :Start
    echo abc.exe about to start
    abc.exe
    :End
    

    EDIT: Si sólo desea «cualquier tecla» sin pulsar enter, a continuación, esto es imposible con el lenguaje de secuencias de comandos DOS, pero podría escribir un poco exe utilidad que va a hacer eso para usted.

    Aquí es lo que parece:

    C:\Users\hol>test
    Press enter to open abc.exe (and something else to quit)
    

    Si usted pulsa la tecla «enter», a continuación, obtenemos:

    C:\Users\hol>test2
    Press enter to open abc.exe (and something else to quit)
    abc.exe about to start
    'abc.exe' is not recognized as an internal or external command,
    operable program or batch file.
    C:\Users\hol>
    

    No he abc.exe así que hay un mensaje de error. La otra manera alrededor de

    C:\Users\hol>test2
    Press enter to open abc.exe (and something else to quit)x
    

    da

    C:\Users\hol>test2
    Press enter to open abc.exe (and something else to quit)x
    
    C:\Users\hol>
    

    Básicamente set /p pida al usuario especificar el valor de «Elección» cuando se trata simplemente de introducir entonces es una cadena vacía y podemos empezar de otra manera terminamos. Cambiarlo todo a tu gusto.

    • Gracias por la solución, pero de esta manera el usuario tiene que «entrar en algo y, a continuación, pulse ENTER» para dejar de fumar, que no es el requisito. Para dejar de fumar tan pronto como el usuario presione cualquier tecla que debe SALIR. Puede usted por favor hágamelo saber si hay alguna solución.
    • ¿Has probado este código? Por favor probarlo. Si el usuario presiona acaba de entrar, a continuación, el programa se inicia con abc.exe. si el usuario introduce algo se cierra el programa.
    • He añadido los resultados de la prueba.
    • También he cambiado el código un poco por el uso de comillas en lugar de los apóstrofes que impide un mensaje de error cuando entró en la cadena comienza con un espacio en blanco.
    • Gracias por tan buena explicación, así que voy a seguir adelante con esto porque como usted dijo que no es posible en dos para dejar de fumar en cualquier tecla enter. Aquí una pregunta más, ¿puedo restringir el usuario sólo tiene que pulsar el solo x o X para dejar de fumar? Muchas gracias.
    • Si utiliza la OPCIÓN de comando que se podía. choice /c:yq /m «a la Prensa y a ir por delante o q para salir (y/q)» luego, a la siguiente línea de «IF ERRORLEVEL 2 GOTO GOAHEAD». Por cierto, no te olvides de aceptar la respuesta, si usted está satisfecho.

  2. 1

    El siguiente archivo por lotes va a hacer exactamente lo que quiere:

       @rem ========================================
       @rem GETKEY.BAT - Written by Paul Tomasi 2010
       @rem
       @rem Waits for keypress. Returns key value
       @rem ========================================
       @echo off
          set /p .=Press ENTER to open abc.exe (and something else to quit): <nul
          call :getkey
          if %errorlevel% equ 13 start /b /wait abc.exe
       exit /b
    
    
       ::---------------------------
       :: GETKEY
       ::---------------------------
       :getkey
          (
             echo a
             echo mov ah, 08
             echo int 21
             echo mov ah, 4c
             echo int 21
             echo.
             echo rcx
             echo 08
             echo n getkey.com
             echo w
             echo q
          )>script
          debug<script>nul
          call getkey.com
       goto :eof
    

    Si su versión de los DOS no admite el «SET /P» opción (usado solamente para suprimir el cursor bajar a la línea siguiente), a continuación, simplemente reemplazar esta línea con una instrucción ECHO.

    Puede omitir el ‘/wait’ si desea colocar directamente a través de su archivo de proceso por lotes.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea