You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建带嵌套选择功能的Windows批处理脚本

实现带嵌套二级选择的批处理文件

基于你的现有代码,我们可以通过标签跳转的方式实现嵌套选择功能。下面是修改后的完整代码,以选项2(Availability-Capacity Deck Folder Path)为例添加二级子菜单,你可以根据需求扩展其他选项:

@ECHO off
SETLOCAL ENABLEDELAYEDEXPANSION
cls
:start
title [ Lazy Planner]
ECHO ===========================================================================================
ECHO.
type "C:\Automation\doh.txt"             
ECHO.
ECHO ===========================================================================================
ECHO.
ECHO 1. WSR Report Folder Path                                                                    
ECHO.
ECHO 2. Availability-Capacity Deck Folder Path
ECHO.
ECHO 3. Pre-CAB Checklist Folder Path
ECHO.
ECHO 4. Exit Lazy Planner
ECHO.
ECHO **************************************
set /p choice= Welcome! Please enter your choice: 

REM 处理空输入或无效输入
if '%choice%'=='' (
    ECHO Error: Invalid input, please try again.
    pause >nul
    cls
    goto start
)

REM 主菜单选项处理
if '%choice%'=='1' (
    start "\\Dell_BOI_MASS\Weekly Status Report\Work In Progress Report\"
    goto start
)
if '%choice%'=='2' goto availability_menu
if '%choice%'=='3' (
    start "\\Dell_BOI_MASS\Change Management\PRE PreCAB Quality Checks\Today\"
    goto start
)
if '%choice%'=='4' goto Exit

REM 二级菜单:Availability-Capacity Deck 子选项
:availability_menu
cls
title [ Lazy Planner - Availability-Capacity Deck]
ECHO ===========================================================================================
ECHO.
ECHO                Availability-Capacity Deck Sub Menu
ECHO.
ECHO ===========================================================================================
ECHO.
ECHO 1. April 2023 Folder
ECHO.
ECHO 2. May 2023 Folder
ECHO.
ECHO 3. Back to Main Menu
ECHO.
ECHO **************************************
set /p sub_choice= Please enter your sub-choice: 

REM 二级菜单输入处理
if '%sub_choice%'=='' (
    ECHO Error: Invalid input, please try again.
    pause >nul
    goto availability_menu
)
if '%sub_choice%'=='1' (
    start "\\Dell_BOI_MASS\Service Design\Availability\Priyanka\2023\April2023\"
    goto availability_menu
)
if '%sub_choice%'=='2' (
    start "\\Dell_BOI_MASS\Service Design\Availability\Priyanka\2023\May2023\"
    goto availability_menu
)
if '%sub_choice%'=='3' (
    cls
    goto start
)

REM 二级菜单无效输入处理
ECHO Error: Invalid sub-choice, please try again.
pause >nul
goto availability_menu

:Exit
cls
ECHO Thank you for using Lazy Planner!
pause >nul
EXIT /B

关键修改说明:

  1. 标签与跳转逻辑:

    • 用:availability_menu定义二级菜单入口,主菜单选项2通过goto availability_menu进入子菜单
    • 二级菜单的返回选项(3)通过goto start回到主菜单
  2. 输入有效性处理:

    • 对空输入或无效选择添加了提示,并用pause >nul让用户确认后重新进入对应菜单
    • 主菜单和二级菜单各自独立处理输入错误,避免程序直接退出
  3. 体验优化:

    • 二级菜单修改了窗口标题,方便用户识别当前层级
    • 执行完文件夹打开操作后,停留在当前菜单(可根据需求改为自动返回主菜单)
    • 退出时添加友好提示

扩展建议:

  • 如果需要给其他主菜单选项添加二级选择,只需复制:availability_menu的逻辑,创建新的标签(比如:wsr_menu)并在主菜单对应选项添加goto跳转即可
  • 可以用choice /c 1234 /m "Welcome! Please enter your choice:"替代set /p,强制用户只能输入指定范围内的数字,减少无效输入(需要注意choice命令的兼容性)

内容的提问来源于stack exchange,提问作者Ashish Chavan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:52:36