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

如何为批处理切换开关实现Yes绿/No红的颜色显示功能?

批处理菜单添加Yes/No颜色标记解决方案

批处理中可通过ANSI转义序列实现文本颜色控制,绿色对应\033[32m,红色对应\033[31m,输出后需用\033[39m恢复默认颜色,避免后续文本继承颜色。以下是修改后的完整代码:

@echo off
setlocal enabledelayedexpansion

:: 定义ANSI转义字符(ESC)
for /f %%a in ('echo prompt $E^| cmd') do set "ESC=%%a"

set "option1=no"
set "option2=no"
set "startScript=0"
:menu
cls
echo]
echo]
echo Select an option:
:: 输出带颜色的Option1状态
echo 1 - Toggle Option 1 
call :colorOption !option1!
echo(
:: 输出带颜色的Option2状态
echo 2 - Toggle Option 2 
call :colorOption !option2!
echo(
echo 3 - Start Script
echo 4 - Exit

choice /c 1234 /n /t 1000 /d 4
set "choice=%errorlevel%"

if %choice%==1 (
    if "!option1!"=="yes" (
        set "option1=no"
    ) else (
        set "option1=yes"
    )
    goto menu
) else if %choice%==2 (
    if "!option2!"=="yes" (
        set "option2=no"
    ) else (
        set "option2=yes"
    )
    goto menu
) else if %choice%==3 (
    set "startScript=1"
    cls
    echo Starting the script with the selected options...
    rem Add your script code here

    if "!option1!"=="yes" (
        call :function1
    )

    if "!option2!"=="yes" (
        call :function2
    )

    echo Done
    pause
    set "startScript=0"  REM Reset the startScript variable
    goto menu
) else if %choice%==4 (
    exit /b
)

goto menu

:: 颜色输出子函数:根据传入的参数输出对应颜色的文本
:colorOption
if "%~1"=="yes" (
    echo %ESC%[32m%~1%ESC%[39m
) else (
    echo %ESC%[31m%~1%ESC%[39m
)
goto :eof

:function1
echo Function 1 is running...
rem Add your code for function 1 here
goto :eof

:function2
echo Function 2 is running...
rem Add your code for function 2 here
goto :eof

关键改动说明

  • ESC变量定义:通过for /f调用cmd获取转义字符,这是批处理中获取ANSI转义码的通用方式,无需额外工具
  • 颜色子函数::colorOption接收状态参数,自动判断输出绿色yes或红色no,并立即恢复默认文本颜色,避免影响后续输出
  • 菜单输出调整:替换原菜单中直接输出状态的逻辑,改为调用颜色子函数,实现带色显示
  • 兼容性:该方案适用于Windows 10 1511版本及以上(主流Windows系统均支持),若需兼容更早版本,可改用color命令或第三方工具,但ANSI转义是当前最优方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:10:43