我想知道是否有一个好的和干净的方式来添加一个“选择所有的选择”时,建立一个批量选择菜单。
目前,我有选择设置为明确的项目1,清除项目2,清除项目3(清除所有),退出,以及超时,用户无法看到。
如果必须的话,我会把我所有的代码重新添加到“清除所有”区域。我想看看是否有一种方法可以让“全部清除”使用定义的1和2,然后回到:像其他一切一样开始。
回答:
我接受了阿奇尼的“设定选项”的想法,并想出了一个更简单的答案我改变了”
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