【问题标题】:Automatically accept user input Windows Batch自动接受用户输入 Windows Batch
【发布时间】:2014-01-18 14:01:46
【问题描述】:

我有一个在启动时加载的批处理文件,它为用户提供了一个应用程序“菜单”,他们可以通过键入相应的“菜单编号”来选择加载。 我们如何减少用户输入,简化他们的选择,以自动将按下的任何键传递到命令提示符,而无需在输入选择后按下 Enter 键?也就是说,如果用户输入 1,则读取该值,就好像用户输入了 1 + Enter 此处的常量是仅菜单跨越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

【问题讨论】:

    标签: batch-file command-line


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 2015-01-08
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多