选择命令中的所有选项

时间:2018-07-23 19:45:06

标签: batch-file cmd menu choice

我想知道在批量构建选择菜单时是否有一种不错的方法来添加“选择所有选择”。

当前,我可以选择设置为清除项目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

1 个答案:

答案 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