我为 WinPE 编写了以下 Windows 批处理脚本,以使一些任务更容易:
@ECHO OFF
CLS
:MENU
SETLOCAL
SET QUIT=FALSE
SET /P INPUTCHOICES=Type 1, 2, 3 or 4 and press ENTER:
CALL :EXECUTECHOICES %INPUTCHOICES%
ENDLOCAL
GOTO :EOF
:EXECUTECHOICES
IF [%1]==[] (GOTO :MENU) ELSE (CALL :%1)
SHIFT
GOTO :EXECUTECHOICES
GOTO :EOF
:1
cls
SET /P RB_OR_SD=Type R to reboot or type S to shutdown your PC when done, and press ENTER:
ECHO Performing task 1
ECHO.
pause
IF "%RB_OR_SD%"=="R" (GOTO :3)
IF "%RB_OR_SD%"=="S" (GOTO :4)
ELSE (GOTO :3)
:2
cls
SET /P RB_OR_SD=Type R to reboot or type S to shutdown your PC when done, and press ENTER:
ECHO Performing task 2
ECHO.
pause
IF "%RB_OR_SD%"=="R" (GOTO :3)
IF "%RB_OR_SD%"=="S" (GOTO :4)
ELSE (GOTO :3)
:3
cls
ECHO The system will now reboot
ECHO.
pause
GOTO :MENU
:4
cls
ECHO The system will now shutdown
ECHO.
pause
GOTO :MENU
GOTO :EOF
这个脚本似乎工作正常,直到用户输入除 1、2、3、4、R 或 S 以外的任何内容。
如果出现INPUTCHOICES
任何错误符号只会导致“系统找不到指定的批次标签”消息并提示重新加载。
但如果将 R 或 S 以外的任何内容放入RB_OR_SD
脚本中,则只执行下一个可用的批处理标签,这绝对不行。
我想用,和的范围以及.和的范围中的一个符号来限制用户输入1
2
3
4
INPUTCHOICES
R
S
RB_OR_SD
最好使用户输入不区分大小写。
任何帮助将不胜感激。