代码之家  ›  专栏  ›  技术社区  ›  jsc

选项命令中的所有选项

  •  0
  • jsc  · 技术社区  · 6 年前

    我想知道是否有一个好的和干净的方式来添加一个“选择所有的选择”时,建立一个批量选择菜单。

    目前,我有选择设置为明确的项目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
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Aacini    6 年前

    这是一个非常简单的方法:

    @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