V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
tux
V2EX  ›  分享创造

Windows BAT CMD 单行文字颜色,支持中文

  •  
  •   tux · 2023-03-04 19:56:55 +08:00 · 1053 次点击
    这是一个创建于 444 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Windows 的 BAT CMD 窗口设置全局背景和文字色很容易,但输出单行带颜色的文字很少见,研究了几天分享如下
    参考资料
    http://bbs.bathome.net/thread-60616-1-1.html
    https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences?redirectedfrom=MSDN#extended-colors


    下面是 demo,保存成 UTF-8 编码

    @echo off
    @chcp 65001>nul
    title Windows BAT CMD 单行文字颜色
    rem 取控制符到变量。(1BH=27=033)
    for /F "tokens=1 delims=#" %%a in ('"prompt #$E# & echo on & for %%b in (1) do rem"') do set "ESC=%%a"

    rem 256 颜色表 https://www.ditig.com/256-colors-cheat-sheet
    rem 背景色
    set colorb=28

    rem 文字色
    set colorf=196

    rem set 中文变量的行上下都要加换行,不然会解释成都在一行从而出错

    set say1=只有背景色

    set say2=只有文字色

    set say3=带背景和前景色的文字

    echo 普通文字
    echo %esc%[48;5;%colorb%m%say1%%esc%[0m
    echo %esc%[38;5;%colorf%m%say2%%esc%[0m
    echo %esc%[48;5;%colorb%;38;5;%colorf%m%say3%%esc%[0m

    pause
    1 条回复    2023-03-04 23:02:41 +08:00
    shangyu7
        1
    shangyu7  
       2023-03-04 23:02:41 +08:00
    厉害的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2081 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:13 · PVG 00:13 · LAX 09:13 · JFK 12:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.