自动接受用户输入Windows Batch

时间:2014-01-18 14:01:47

标签: batch-file command-line

我有一个批处理文件,在启动时加载,向用户显示他们可以通过键入相应的“菜单编号”来选择加载的应用程序“菜单”。 我们如何减少用户输入,简化选择,自动将任何按下的键传递到命令提示符,而不需要在键入选择后按Enter键?也就是说,如果用户输入 1 ,则读取该值,就好像用户已输入 1 + 输入此处的常量仅为菜单来自1-9的跨度,因此来自用户的输入将只有1个字符长(如果这完全相关)。

简要介绍如何显示菜单以及如何处理用户输入:

:menu
echo [Menu]
echo.
echo [1] - PuTTy
echo [2] - Chrome (Google)
echo.
echo [0] - Exit

SET /P M=(:
IF %M%==1 goto choice1
IF %M%==2 goto choice2
IF %M%==0 goto choice0

:choice1
start "" "%ProgramFiles(x86)%\PuTTy\putty.exe"
goto menu

:choice2
start "" "%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe" www.google.com
goto menu

:choice0
exit

1 个答案:

答案 0 :(得分:1)

您可以使用Choice。 所以你的脚本看起来类似于:

:menu
echo [Menu]
echo.
echo [1] - PuTTy
echo [2] - Chrome (Google)
echo.
echo [0] - Exit

choice /c 120 /n /m (:

IF errorlevel 3 goto choice0
IF errorlevel 2 goto choice2
IF errorlevel 1 goto choice1

:choice1
start "" "%ProgramFiles(x86)%\PuTTy\putty.exe"
goto menu

:choice2
start "" "%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe" www.google.com
goto menu

:choice0