6个显示彩色字符的批处理代码

枕上诗书闲处好,门前风景雨来佳。这篇文章主要讲述6个显示彩色字符的批处理代码相关的知识,希望能为你提供帮助。
我们接触到的批处理大多显示黑底白字,但若能显示出彩色的文字,你的批处理的逼格就原地升级,文本更易阅读,画面也更加活泼。以下我从中外网络上收集来的、能显示彩色字符的批处理代码,能汉化的都尽量汉化,记录于此,并向原作者表示感谢。
如果用记事本编辑批处理,要以ANSI格式保存,不要用默认的UTF-8。

本文所有批处理的??压缩包下载。??


代码1:仅适用于Win10的彩色显示批处理。语法简单易用。
ANSI Colors in standard Windows 10 shell
效果:

@echo off
::ANSI Colors in standard Windows 10 shell
::https://gist.github.com/mlocati/fdabcaeb8071d5c75a2d51712db24011
::代码页:
::chcp 65001UTF-8
::chcp 936GBK
::chcp 437美国英语

chcp 65001
setlocal
call :setESC

cls
echo %ESC%[101; 93m样式%ESC%[0m
echo ^< ESC^> [0m %ESC%[0m 复位 %ESC%[0m
echo ^< ESC^> [1m %ESC%[1m 黑体 %ESC%[0m
echo ^< ESC^> [7m %ESC%[7m 反向 %ESC%[0m
echo ^< ESC^> [4m %ESC%[4m 下划线 %ESC%[0m
echo.
echo %ESC%[101; 93m标准前景色%ESC%[0m
echo ^< ESC^> [30m %ESC%[30m黑色%ESC%[0m (黑色)
echo ^< ESC^> [31m %ESC%[31m红色%ESC%[0m
echo ^< ESC^> [32m %ESC%[32m绿色%ESC%[0m
echo ^< ESC^> [33m %ESC%[33m黄色%ESC%[0m
echo ^< ESC^> [34m %ESC%[34m蓝色%ESC%[0m
echo ^< ESC^> [35m %ESC%[35m洋红%ESC%[0m
echo ^< ESC^> [36m %ESC%[36m青色%ESC%[0m
echo ^< ESC^> [37m %ESC%[37m白色%ESC%[0m
echo.
echo %ESC%[101; 93m标准背景色%ESC%[0m
echo ^< ESC^> [40m %ESC%[40m黑色k%ESC%[0m
echo ^< ESC^> [41m %ESC%[41m红色%ESC%[0m
echo ^< ESC^> [42m %ESC%[42m绿色%ESC%[0m
echo ^< ESC^> [43m %ESC%[43m黄色%ESC%[0m
echo ^< ESC^> [44m %ESC%[44m蓝色%ESC%[0m
echo ^< ESC^> [45m %ESC%[45m洋红%ESC%[0m
echo ^< ESC^> [46m %ESC%[46m青色%ESC%[0m
echo ^< ESC^> [47m %ESC%[47m白色%ESC%[0m (白色)
echo.
echo %ESC%[101; 93m强烈的前景色%ESC%[0m
echo ^< ESC^> [90m %ESC%[90m白色%ESC%[0m
echo ^< ESC^> [91m %ESC%[91m红色%ESC%[0m
echo ^< ESC^> [92m %ESC%[92m绿色%ESC%[0m
echo ^< ESC^> [93m %ESC%[93m黄色%ESC%[0m
echo ^< ESC^> [94m %ESC%[94m蓝色%ESC%[0m
echo ^< ESC^> [95m %ESC%[95m洋红%ESC%[0m
echo ^< ESC^> [96m %ESC%[96m青色%ESC%[0m
echo ^< ESC^> [97m %ESC%[97m白色%ESC%[0m
echo.
echo %ESC%[101; 93m强烈的背景色%ESC%[0m
echo ^< ESC^> [100m %ESC%[100m黑色%ESC%[0m
echo ^< ESC^> [101m %ESC%[101m红色%ESC%[0m
echo ^< ESC^> [102m %ESC%[102m绿色%ESC%[0m
echo ^< ESC^> [103m %ESC%[103m黄色%ESC%[0m
echo ^< ESC^> [104m %ESC%[104m蓝色%ESC%[0m
echo ^< ESC^> [105m %ESC%[105m洋红%ESC%[0m
echo ^< ESC^> [106m %ESC%[106m青色%ESC%[0m
echo ^< ESC^> [107m %ESC%[107m白色%ESC%[0m
echo.
echo %ESC%[101; 93m颜色组合%ESC%[0m
echo ^< ESC^> [31m%ESC%[31m红色前景色%ESC%[0m
echo ^< ESC^> [7m%ESC%[7m反转前景色 ^< -^> 背景色%ESC%[0m
echo ^< ESC^> [7; 31m%ESC%[7; 31m反转31m红色,也就是黑底红字变为红底黑字%ESC%[0m
echo ^< ESC^> [7m和嵌套^< ESC^> [31m %ESC%[7m前半部分定义了反转显示 %ESC%[31m所以后半部分的31m红色也跟着反转显示%ESC%[0m
echo ^< ESC^> [31m和嵌套^< ESC^> [7m %ESC%[31m 前半部分是31m红色%ESC%[7m后半部分因为定义了7m,所以在前半部分的基础上反转显示%ESC%[0m
pause

:setESC
for /F "tokens=1,2 delims=#" %%a in ("prompt #$H#$E# & echo on & for %%b in (1) do rem") do (
set ESC=%%b
exit /B 0
)
exit /B 0

也可以在WIN10命令行直接输入,但需要一个技巧:按住ALT键的同时按小键盘数字027会出现字符^[,再接着输入颜色代码,比如[41; 37m红色!。例如:
按键输入:echo空格(ALT+027)[41; 37m红色!
显示出的命令行是:echo ^[[41; 37m红色!?



代码2:仅适用于WIN10,原理同上,但换了一种技巧。
批处理的那些问号字符是在Notepad++里输入的,方法就是:ALT+小键盘的027。?
效果:
?
@echo OFF
::如果显示汉字,就置代码页为UTF-8
chcp 65001
mode con cols=80 lines=25
color f
echo.[41; 37m红色! [42; 37m绿色! [43; 37m黄色! [44; 37m蓝色! [45; 37m洋红! [46; 37m青色! [47; 30m白色!
echo.[40; 31m 红色 [40; 32m 绿色 [40; 33m 黄色 [40; 34m蓝色! [40; 35m洋红 [40; 36m 青色 [40; 37m 白色!
echo.[41; 37m[42; 37m[43; 37m[44; 37m[45; 37m[46; 37m[47; 37m
echo.[47; 37m[46; 37m[45; 37m[44; 37m[43; 37m[42; 37m[41; 37m
pause > nul

::前景色
::30黑色
::31红色
::32绿色
::33黄色
::34蓝色
::35洋红
::36青色
::37白色

::背景色
::40黑色
::41红色
::42绿色
::43黄色
::44蓝色
::45洋红
::46青色
::47白色



代码3:这段代码短小精悍,推荐!
但要使用到powershell,所以只能适用于WIN7及其以上版本。
若要powershell显示双引号,需要用转义符。
效果:
?
@echo off
cls

echo.
call :ccr 我是\\"红色\\"字符!
call :ccg 我是\\"绿色\\"字符!

:ccr
powershell -Command Write-Host "%*" -foreground "Red"
goto :eof

:ccg
powershell -Command Write-Host "%*" -foreground "Green"
echo.
pause

::Color 红色Red 黑色Black 绿色Green 黄色Yellow 蓝色Blue 洋红Magenta 青色Cyan 白色White



代码4:用findstr命令来实现文字着色
效果:
?
@echo off
title a game for youtube
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"
)
echo say the name of the colors, dont read

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"

goto :Beginoffile

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

:Beginoffile
echo.
echo.
pause



代码5:用findstr命令实现文字着色
效果:
??
::这是曾经写的,又稍微改进了一下。
@echo off
set str=青天有月来几时 我今停杯一问之 人攀明月不可得 月行却与人相随
setlocal enabledelayedexpansion
set col=CAD9B
for /f "tokens=1-4 delims= " %%1 in ("%str%") do (echo.
for %%m in (%%1 %%2 %%3 %%4) do (set s=%%m
for /l %%a in (0,1,6) do (
call set b=0%%col:~!x!,1%%
set /a x+=1& if !x!==5 (set x=0)
set c=!s:~%%a,1!
set/p= < nul> !c!
findstr /a:!b! .* "!c!*"
del !c!
ping /n 1 /w 500 127.1> nul& ping /n 1 /w 500 127.1> nul& ping /n 1 /w 500 127.1> nul)
echo.& echo.))
pause> nul& exit



代码6:用color命令实现文字着色
效果:

echo off
:z
echo 显示彩色字符
echo 显示彩色字符
echo 显示彩色字符
echo 显示彩色字符
echo 显示彩色字符
echo 显示彩色字符
echo 显示彩色字符
echo 显示彩色字符
echo 显示彩色字符

color 01
color 02
color 03
color 04
color 05
color 06
color 07
color 08
color 09
color 0A
color 0B
color 0c
color 0d
goto z

【6个显示彩色字符的批处理代码】


    推荐阅读