在Dos批处理文件中按ENTER键打开程序或按任意其他键退出bat

时间:2010-11-26 23:27:05

标签: dos batch-file

我有一个DOS批处理文件,它在cmd控制台上显示一些结果。我希望用户按Enter键运行程序或按键盘上的任何其他键退出。

我不想使用选项/选项,因为在这种情况下,用户必须至少输入我需要检查的内容并设置操作。

实施例: 在cmd控制台的末尾,有人说这样的话 按ENTER键打开abc.exe或按键盘上的任意键退出!

谢谢!

2 个答案:

答案 0 :(得分:3)

像这样的东西

@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

编辑:如果你只需要“任意键”而不按Enter键,那么使用DOS脚本语言就不可能了,但是你可以写一个小的exe工具来为你做这个。

以下是它的外观:

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

如果按“输入”,我们会得到:

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>

我没有abc.exe所以有错误信息。另一种方式

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

给出

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

C:\Users\hol>

基本上设置/ p要求用户在输入时指定“选择”的值然后它是一个空字符串,我们可以开始,否则我们结束。根据自己的喜好改变它。

答案 1 :(得分:1)

下面的批处理文件将完全符合您的要求:

   @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

如果您的DOS版本不支持'SET / P'选项(仅用于抑制光标下降到下一行),则只需用ECHO语句替换该行。

如果要直接删除批处理文件,可以省略'/ wait'。