我想知道在批量构建选择菜单时是否有一种不错的方法来添加“选择所有选择”。
当前,我可以选择设置为清除项目1,清除项目2,清除项目3(清除所有),退出以及用户看不到的超时时间。
如果必须的话,我只需将我的所有代码重新添加到“全部清除”区域。我希望看看是否有一种方法可以让“清除所有内容”使用定义的1和2,然后像其他所有操作一样返回:start。
答案: :我接受了Aacini关于“设置选项”的想法,并给出了一个更简单的答案。我将“清除所有选项”的“ GOTO :start"
更改为"GOTO :ClearCache
”。然后,我添加了“ IF %ERRORLEVEL% neq 3 GOTO :start
”,然后添加了“ GOTO :ClearCredentials
”。这样一来,我可以保留的行数少于set选项,并且不必四处移动代码即可将其传递给下一个进程。
这应该允许多个但不同的清除将来项目的所有选项。
@ECHO OFF
:start
ECHO 1. Clear IE, Chrome, Temp Cache
ECHO 2. Clear Credentials in IE, Chrome, and Windows
ECHO 3. Clear All Options
ECHO 4. Exit
CHOICE /N /C:12345 /T 15 /D 5 /M "Type the number to choose an option."
IF %ERRORLEVEL%==5 GOTO TIMEOUT
IF %ERRORLEVEL%==4 GOTO Exit
IF %ERRORLEVEL%==3 GOTO ClearAllOptions
IF %ERRORLEVEL%==2 GOTO ClearCredentials
IF %ERRORLEVEL%==1 GOTO ClearCache
GOTO :start
:ClearCache
ECHO Clearing Cache...
<code here>
pause
cls
IF %ERRORLEVEL% neq 3 GOTO :start
GOTO :ClearCredentials
REM ===-----------------------
:ClearCredentials
ECHO Clearing Credentials
<code here>
pause
cls
GOTO :start
REM ===-----------------------
:ClearAllOptions
ECHO Clearing All Options...
pause
cls
GOTO :ClearCache
pause
REM ===-----------------------
:Exit
ECHO Exiting...
<code here>
pause
EXIT
REM ===-----------------------
:TIMEOUT
cls
ECHO Exiting because no choices were made in 15 seconds
:END
timeout /t 5
答案 0 :(得分:1)
这是一种非常简单的方法:
@ECHO OFF
:start
set option=0
ECHO 1. Clear IE, Chrome, Temp Cache
ECHO 2. Clear Credentials in IE, Chrome, and Windows
ECHO 3. Clear All Options
ECHO 4. Exit
CHOICE /N /C:12345 /T 15 /D 5 /M "Type the number to choose an option."
GOTO Option-%ERRORLEVEL%
:Option-3 ClearAllOptions
ECHO Clearing All Options
set option=3
:Option-1 ClearCache
ECHO Clearing Cache...
<code here>
pause
cls
if %option% neq 3 GOTO :start
REM ===-----------------------
:Option-2 ClearCredentials
ECHO Clearing Credentials
<code here>
pause
cls
GOTO :start
REM ===-----------------------
:Option-4 Exit
ECHO Exiting...
<code here>
pause
EXIT
REM ===-----------------------
:Option-5 TIMEOUT
cls
ECHO Exiting because no choices were made in 15 seconds
:END
timeout /t 5