我有一个DOS批处理文件,它在cmd控制台上显示一些结果。我希望用户按Enter键运行程序或按键盘上的任何其他键退出。
我不想使用选项/选项,因为在这种情况下,用户必须至少输入我需要检查的内容并设置操作。
实施例: 在cmd控制台的末尾,有人说这样的话 按ENTER键打开abc.exe或按键盘上的任意键退出!
谢谢!
答案 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'。