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

在Dos批处理文件中,按ENTER键打开程序,或按任何其他键退出bat,dos,batch-file,Dos,Batch File,我有一个DOS批处理文件,在cmd控制台上显示一些结果。我希望用户按Enter键运行程序,或按键盘上的任何其他键退出 我不想使用选项/选项,因为在这种情况下,用户必须至少输入一些我需要检查和设置操作的内容 例如: 在cmd控制台的末尾,可以这样说 按ENTER键打开abc.exe,或按键盘上的任意键退出 谢谢 像这样的 @ECHO OFF SET Choice= SET /P Choice=Press enter to open abc.exe (and something else to qu

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

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

例如: 在cmd控制台的末尾,可以这样说 按ENTER键打开abc.exe,或按键盘上的任意键退出

谢谢

像这样的

@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
给予


基本上是set/p当输入时,要求用户指定“Choice”的值,然后它是一个空字符串,我们可以开始,否则就结束。根据您的喜好进行更改。

下面的批处理文件将完全满足您的要求:

   @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
@rem========================================
@rem GETKEY.BAT-由Paul Tomasi编写,2010年
@雷姆
@rem等待按键。返回键值
@雷姆========================================
@回音
set/p.=按ENTER键打开abc.exe(以及其他要退出的内容):脚本
调试
请致电getkey.com
后藤:eof
如果您的DOS版本不支持“SET/p”选项(仅用于抑制光标向下移动到下一行),则只需使用ECHO语句替换此行即可


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

感谢您的解决方案,但这样用户必须“输入一些内容,然后按enter键”才能退出,这不是必需的。对于退出,用户一按任何键就应该退出。你能告诉我有什么解决办法吗?你试过这个代码吗?请测试一下。如果用户只按enter键,则程序将以abc.exe启动。如果用户输入某个内容,程序将退出。我向您添加了测试结果。此外,我还使用引号而不是撇号对代码进行了一些更改,以防止在输入的字符串以空白开头时出现错误消息。感谢您这么好的解释,所以我会继续这样做,因为正如你所说的,在dos中,任何回车键都不可能退出。这里还有一个问题,我可以限制用户只按x键还是只按x键退出?非常感谢。
   @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