bat echo 输出内容为不同的颜色

 实例1:

@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
  set "DEL=%%a"
)
rem echo say the name of the colors, don't read
:start
rem cls
call :ColorText 0a "blue"
call :ColorText 0C "green"
call :ColorText 0b "red"
echo.
call :ColorText 19 "yellow"
call :ColorText 2F "black"
call :ColorText 4e "white"

echo.
echo aaaaaa

pause

goto :eof

:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof

实例1 使用注意事项:

1.你的代码放在 :start 和第一行 goto :eof之间

2.换行使用 echo.

3.最好使用双引号把内容括起来,不然遇到空格就会报拒绝访问的错误,内容如果包含特殊字符(例如:"a:!aa" 等等,一般是win不允许我们用来命名文件的符号),也可能导致报错,或者字符不显示,所以最好不要使用特殊字符,这个会在当前目录生成一个临时文件,以你的内容为命名,如果包含了那些字符,就会产生那些文件,最好不删除,需要自己手动删除。

4.关于颜色,有背景色和字体色,第一个数字代表背景色,第二个数字代表字体色,至于颜色值,在 cmd 中输入 color /? 查看

实例1出处:https://www.cnblogs.com/ibingshan/p/10906622.html

实例2:

@echo off
::程序开始前要先调用putcstart来创建一次颜色文件
call:putcstart


::调用过程就是[putcchar 文字 颜色]。文字不能有/:*?"<>|这些符号,因为是通过文件名来产生颜色的;而颜色则跟color命令中的一样。
call:putcchar "This is a test" 2b
call:putcchar " !" 2e
echo.
echo.


::由于受到文件的限制作用,空格符也会有所限制,比如字符串以空格开始、中间含有空格、以空格结尾这三种方式运行的结果都不同。
echo 理想输出[___空格在前面]
call:putchar "实际输出["
call:putcchar "   空格在前面" 5b
echo ]
echo.
echo 理想输出[空格在___中间]
call:putchar "实际输出["
call:putcchar "空格在   中间" 5b
echo ]
echo.
echo 理想输出[空格在后面___]
call:putchar "实际输出["
call:putcchar "空格在后面   " 5b
echo ]
echo.

call:putcchar "" 09
call:putcchar "" 02
call:putcchar "" 03
call:putcchar "" 04
call:putcchar " Power" 05
call:putcchar " By" 06
call:putcchar " Kisiboo" 0E

pause>nul
goto :eof



::下面是过程部分(可以直接复制走)

:putcstart
set crp=c:
set crf=crfile.tmp
set /p=   <nul>%crp%%crf%
goto :eof

:putcchar
ren %crp%%crf% %1
pushd .&C:&cd
findstr /a:%2 . %1?
ren %crp%%1 %crf%
popd
goto :eof

:putchar
set /p=%1<nul
goto :eof

原文地址:https://www.cnblogs.com/-mrl/p/13792983.html