• bat 单行输出彩色信息


    demo

    echo test
    call writeline "111" 2
    call writeline "222" 
    echo test
    

    writeline.bat

    :writeline <"str"> <attr>
    if "%2"=="" (
    	call ColorStr 0c 3 "%1" 1 2 1 ) else (
    	call ColorStr %2 3 "%1" 1 2 1
    )
    goto:eof
    

    ColorStr.bat

    :ColorStr <attr> <sp> <"str"> <bk> <sp> <enter>
    %::::       |     |     |      |    |     |            %
    %::::      颜色  空格 字符串  退格 空格 回车换行       %
    for %%a in (+%2 +%4 +%5 +%6) do (
       if "%%a"=="+" echo 控制参数不能为空&exit/b
       if %%a lss +0 echo 参数越界-&exit/b
       if %%a geq +a echo 参数越界+&exit/b)
    if %3 == "" echo 字符串不能为空&exit/b
    pushd %tmp%&setlocal ENABLEEXTENSIONS
    :: 将生成的临时文件删除
    if exist "%~3?" del/a/q "%~3?">nul 2>nul
    if %2 gtr 0 call:ColorStr_bs %2 sp " "&call set/p=%%sp%%<nul
    :: 添加退格符
    if %4 gtr 0 (call:ColorStr_bs %4 bk "") else set "bk="
    call:ColorStr_bs %5 sp " "
    set/p=%bk%%sp%<nul>"%~3"&findstr /a:%1 .* "%~3?" 2>nul
    if not %6 equ 0 for /l %%a in (1 1 %6)do echo.
    endlocal&popd&goto:eof
    
    :ColorStr_bs
    set "p="&for /l %%a in (1 1 %1)do call set "p=%%p%%%~3"
    set "%2=%p%"&goto:eof
    

    call:ColorStr 0c 3 "abcdef" 1 2 2
    用0c色(淡红色)依次输出3个空格 abcdef: [光标左移1位] 2个空格 2个回车换行符。

    控制台前景和背景颜色(color)
    颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为前景。每个数字可以为以下任何值之一:
    0 = 黑色 8 = 灰色
    1 = 蓝色 9 = 淡蓝色
    2 = 绿色 A = 淡绿色
    3 = 湖蓝色 B = 淡浅绿色
    4 = 红色 C = 淡红色
    5 = 紫色 D = 淡紫色
    6 = 黄色 E = 淡黄色
    7 = 白色 F = 亮白色
    例如: "COLOR fc" 在亮白色上产生淡红色

  • 相关阅读:
    带你走进Ajax
    基础
    基础
    基础-文字
    C++ part6.5
    操作系统 part4
    操作系统 part3
    计算机网络 part3 HTTP&HTTPS
    计算机网络 part2
    计算机网络 part1 TCP
  • 原文地址:https://www.cnblogs.com/wesson2019-blog/p/13628429.html
Copyright © 2020-2023  润新知