如何在 Windows 命令提示符中将多种颜色应用于 "Lines"?
How can I apply multiple colors to "Lines" in Windows Command Prompt?
我是这个网站的新手,我想问你如何在CMD中按行(或按列?)应用多种颜色。随意编辑下面的代码,我也希望单词的颜色与经典 Google Chrome 颜色相似。
cls
@echo off
color 0a
echo.
echo.
echo.
echo ,,
echo .g8"""bgd `7MM
echo .dP' `M MM
echo dm' ` ,pW"Wq. ,pW"Wq. .P"Ybmmm MM .gP"Ya
echo MM 6W' `Wb 6W' `Wb :MI I8 MM ,M' Yb
echo MM. `7MMF' 8M MB 8M MB Wmmmp" MM 8M""""""
echo `Mb MM YA. ,A9 YA. ,A9 8M MM YM. .
echo `"bmmmdPY `Ybmd9' `Ybmd9' YMMMMMb .JMML. `Mbmmd'
echo 6' dP
echo Ybmmmd'
echo.
echo.
echo.
pause>nul
这是一种方法,不过您必须自己弄清楚颜色参考,我只是添加了这些颜色作为示例:
@echo off
for /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a"
cls
echo(
echo(
echo(
echo %ESC%[90m,,%ESC%[0m
echo %ESC%[91m.g8"""bgd%ESC%[0m %ESC%[90m`7MM%ESC%[0m
echo %ESC%[91m.dP' `M%ESC%[0m %ESC%[90mMM%ESC%[0m
echo %ESC%[91mdm' `%ESC%[0m %ESC%[92m,pW"Wq. ,pW"Wq.%ESC%[0m %ESC%[90m.P"Ybmmm MM .gP"Ya%ESC%[0m
echo %ESC%[91mMM%ESC%[0m %ESC%[92m6W' `Wb 6W' `Wb%ESC%[0m %ESC%[90m:MI I8 MM ,M' Yb%ESC%[0m
echo %ESC%[91mMM. `7MMF'%ESC%[0m %ESC%[92m8M MB 8M MB%ESC%[0m %ESC%[90mWmmmp" MM 8M""""""%ESC%[0m
echo %ESC%[91m`Mb MM%ESC%[0m %ESC%[92mYA. ,A9 YA. ,A9%ESC%[0m %ESC%[90m8M MM YM. .%ESC%[0m
echo %ESC%[91m`"bmmmdPY%ESC%[0m %ESC%[92m`Ybmd9' `Ybmd9'%ESC%[0m %ESC%[90mYMMMMMb .JMML. `Mbmmd'%ESC%[0m
echo %ESC%[90m6' dP%ESC%[0m
echo %ESC%[90mYbmmmd'%ESC%[0m
echo(
echo(
echo(
pause>nul
结果:
编辑
这里是对 ansi color
转义码的引用。
这是 Gerhard 已经推荐的 windows-10 ANSI 转义码方法的一个看起来更整洁的版本。
@Echo Off
SetLocal EnableExtensions
For /F %%G In ('Echo Prompt $E ^| "%__AppDir__%cmd.exe"') Do Set "ESC=%%G"
ClS
Echo=
Echo=
Echo=
Echo %ESC%[92m ,,
Echo %ESC%[94m .g8"""bgd %ESC%[92m `7MM
Echo %ESC%[94m .dP' `M %ESC%[92m MM
Echo %ESC%[94m dm' ` %ESC%[91m ,pW"Wq. %ESC%[93m ,pW"Wq. %ESC%[94m .P"Ybmmm %ESC%[92m MM %ESC%[91m .gP"Ya
Echo %ESC%[94m MM %ESC%[91m 6W' `Wb %ESC%[93m 6W' `Wb%ESC%[94m :MI I8 %ESC%[92m MM %ESC%[91m ,M' Yb
Echo %ESC%[94m MM. `7MMF'%ESC%[91m 8M MB %ESC%[93m 8M MB%ESC%[94m Wmmmp" %ESC%[92m MM %ESC%[91m 8M""""""
Echo %ESC%[94m `Mb MM %ESC%[91m YA. ,A9 %ESC%[93m YA. ,A9%ESC%[94m 8M %ESC%[92m MM %ESC%[91m YM. .
Echo %ESC%[94m `"bmmmdPY %ESC%[91m `Ybmd9' %ESC%[93m `Ybmd9' %ESC%[94m YMMMMMb %ESC%[92m .JMML.%ESC%[91m `Mbmmd'
Echo %ESC%[94m 6' dP
Echo Ybmmmd' %ESC%[0m
Echo=
Echo=
Echo=
Pause 1> NUL
你甚至可以把它弄乱,把它放进一个明亮的白色盒子里,例如:
@Echo Off
SetLocal EnableExtensions
For %%# In (BG FG)Do Set "%%#="
For /F %%# In ('%__AppDir__%WindowsPowerShell\v1.0\powershell.exe -NoP ^
"$Console=(Get-Host).UI.RawUI;Switch($Console.BackgroundColor," ^
"$Console.ForegroundColor){'Black'{40}'DarkBlue'{44}'DarkGreen'{42}" ^
"'DarkCyan'{46}'DarkRed'{41}'DarkMagenta'{45}'DarkYellow'{43}'Gray'{47}" ^
"'DarkGray'{100}'Blue'{104}'Green'{102}'Cyan'{106}'Red'{101}" ^
"'Magenta'{105}'Yellow'{103}'White'{107}}" 2^>NUL')Do If Not Defined BG (
Set "BG=%%#")Else Set "FG=%%#"
For /F %%G In ('Echo Prompt $E ^| "%__AppDir__%cmd.exe"') Do Set "ESC=%%G"
ClS
Echo=
Echo=
Echo=
Echo %ESC%[92;107m ,, %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m .g8"""bgd %ESC%[92m `7MM %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m .dP' `M %ESC%[92m MM %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m dm' ` %ESC%[91m ,pW"Wq. %ESC%[93m ,pW"Wq. %ESC%[94m .P"Ybmmm %ESC%[92m MM %ESC%[91m .gP"Ya %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m MM %ESC%[91m 6W' `Wb %ESC%[93m 6W' `Wb%ESC%[94m :MI I8 %ESC%[92m MM %ESC%[91m ,M' Yb %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m MM. `7MMF'%ESC%[91m 8M MB %ESC%[93m 8M MB%ESC%[94m Wmmmp" %ESC%[92m MM %ESC%[91m 8M"""""" %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m `Mb MM %ESC%[91m YA. ,A9 %ESC%[93m YA. ,A9%ESC%[94m 8M %ESC%[92m MM %ESC%[91m YM. . %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m `"bmmmdPY %ESC%[91m `Ybmd9' %ESC%[93m `Ybmd9' %ESC%[94m YMMMMMb %ESC%[92m .JMML.%ESC%[91m `Mbmmd' %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m 6' dP %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m Ybmmmd' %ESC%[%FG%;%BG%m
Echo=
Echo=
Echo=
Pause 1> NUL
GoTo :EOF
上述方法利用 powershell 使用当前控制台前景色和背景色来确定和创建变量。这可确保在处理完颜色更改的图像行后正确重置它们。 (编剧当然可以一开始就定义已知的颜色)
不过,我要补充一点,命令行应该用于键入命令和读取文本输出,而不是用于显示不必要的幼稚图像和颜色。如果您想要 GUI,请构建 GUI 程序,而不是控制台程序。
我是这个网站的新手,我想问你如何在CMD中按行(或按列?)应用多种颜色。随意编辑下面的代码,我也希望单词的颜色与经典 Google Chrome 颜色相似。
cls
@echo off
color 0a
echo.
echo.
echo.
echo ,,
echo .g8"""bgd `7MM
echo .dP' `M MM
echo dm' ` ,pW"Wq. ,pW"Wq. .P"Ybmmm MM .gP"Ya
echo MM 6W' `Wb 6W' `Wb :MI I8 MM ,M' Yb
echo MM. `7MMF' 8M MB 8M MB Wmmmp" MM 8M""""""
echo `Mb MM YA. ,A9 YA. ,A9 8M MM YM. .
echo `"bmmmdPY `Ybmd9' `Ybmd9' YMMMMMb .JMML. `Mbmmd'
echo 6' dP
echo Ybmmmd'
echo.
echo.
echo.
pause>nul
这是一种方法,不过您必须自己弄清楚颜色参考,我只是添加了这些颜色作为示例:
@echo off
for /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a"
cls
echo(
echo(
echo(
echo %ESC%[90m,,%ESC%[0m
echo %ESC%[91m.g8"""bgd%ESC%[0m %ESC%[90m`7MM%ESC%[0m
echo %ESC%[91m.dP' `M%ESC%[0m %ESC%[90mMM%ESC%[0m
echo %ESC%[91mdm' `%ESC%[0m %ESC%[92m,pW"Wq. ,pW"Wq.%ESC%[0m %ESC%[90m.P"Ybmmm MM .gP"Ya%ESC%[0m
echo %ESC%[91mMM%ESC%[0m %ESC%[92m6W' `Wb 6W' `Wb%ESC%[0m %ESC%[90m:MI I8 MM ,M' Yb%ESC%[0m
echo %ESC%[91mMM. `7MMF'%ESC%[0m %ESC%[92m8M MB 8M MB%ESC%[0m %ESC%[90mWmmmp" MM 8M""""""%ESC%[0m
echo %ESC%[91m`Mb MM%ESC%[0m %ESC%[92mYA. ,A9 YA. ,A9%ESC%[0m %ESC%[90m8M MM YM. .%ESC%[0m
echo %ESC%[91m`"bmmmdPY%ESC%[0m %ESC%[92m`Ybmd9' `Ybmd9'%ESC%[0m %ESC%[90mYMMMMMb .JMML. `Mbmmd'%ESC%[0m
echo %ESC%[90m6' dP%ESC%[0m
echo %ESC%[90mYbmmmd'%ESC%[0m
echo(
echo(
echo(
pause>nul
结果:
编辑
这里是对 ansi color
转义码的引用。
这是 Gerhard 已经推荐的 windows-10 ANSI 转义码方法的一个看起来更整洁的版本。
@Echo Off
SetLocal EnableExtensions
For /F %%G In ('Echo Prompt $E ^| "%__AppDir__%cmd.exe"') Do Set "ESC=%%G"
ClS
Echo=
Echo=
Echo=
Echo %ESC%[92m ,,
Echo %ESC%[94m .g8"""bgd %ESC%[92m `7MM
Echo %ESC%[94m .dP' `M %ESC%[92m MM
Echo %ESC%[94m dm' ` %ESC%[91m ,pW"Wq. %ESC%[93m ,pW"Wq. %ESC%[94m .P"Ybmmm %ESC%[92m MM %ESC%[91m .gP"Ya
Echo %ESC%[94m MM %ESC%[91m 6W' `Wb %ESC%[93m 6W' `Wb%ESC%[94m :MI I8 %ESC%[92m MM %ESC%[91m ,M' Yb
Echo %ESC%[94m MM. `7MMF'%ESC%[91m 8M MB %ESC%[93m 8M MB%ESC%[94m Wmmmp" %ESC%[92m MM %ESC%[91m 8M""""""
Echo %ESC%[94m `Mb MM %ESC%[91m YA. ,A9 %ESC%[93m YA. ,A9%ESC%[94m 8M %ESC%[92m MM %ESC%[91m YM. .
Echo %ESC%[94m `"bmmmdPY %ESC%[91m `Ybmd9' %ESC%[93m `Ybmd9' %ESC%[94m YMMMMMb %ESC%[92m .JMML.%ESC%[91m `Mbmmd'
Echo %ESC%[94m 6' dP
Echo Ybmmmd' %ESC%[0m
Echo=
Echo=
Echo=
Pause 1> NUL
你甚至可以把它弄乱,把它放进一个明亮的白色盒子里,例如:
@Echo Off
SetLocal EnableExtensions
For %%# In (BG FG)Do Set "%%#="
For /F %%# In ('%__AppDir__%WindowsPowerShell\v1.0\powershell.exe -NoP ^
"$Console=(Get-Host).UI.RawUI;Switch($Console.BackgroundColor," ^
"$Console.ForegroundColor){'Black'{40}'DarkBlue'{44}'DarkGreen'{42}" ^
"'DarkCyan'{46}'DarkRed'{41}'DarkMagenta'{45}'DarkYellow'{43}'Gray'{47}" ^
"'DarkGray'{100}'Blue'{104}'Green'{102}'Cyan'{106}'Red'{101}" ^
"'Magenta'{105}'Yellow'{103}'White'{107}}" 2^>NUL')Do If Not Defined BG (
Set "BG=%%#")Else Set "FG=%%#"
For /F %%G In ('Echo Prompt $E ^| "%__AppDir__%cmd.exe"') Do Set "ESC=%%G"
ClS
Echo=
Echo=
Echo=
Echo %ESC%[92;107m ,, %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m .g8"""bgd %ESC%[92m `7MM %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m .dP' `M %ESC%[92m MM %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m dm' ` %ESC%[91m ,pW"Wq. %ESC%[93m ,pW"Wq. %ESC%[94m .P"Ybmmm %ESC%[92m MM %ESC%[91m .gP"Ya %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m MM %ESC%[91m 6W' `Wb %ESC%[93m 6W' `Wb%ESC%[94m :MI I8 %ESC%[92m MM %ESC%[91m ,M' Yb %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m MM. `7MMF'%ESC%[91m 8M MB %ESC%[93m 8M MB%ESC%[94m Wmmmp" %ESC%[92m MM %ESC%[91m 8M"""""" %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m `Mb MM %ESC%[91m YA. ,A9 %ESC%[93m YA. ,A9%ESC%[94m 8M %ESC%[92m MM %ESC%[91m YM. . %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m `"bmmmdPY %ESC%[91m `Ybmd9' %ESC%[93m `Ybmd9' %ESC%[94m YMMMMMb %ESC%[92m .JMML.%ESC%[91m `Mbmmd' %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m 6' dP %ESC%[%FG%;%BG%m
Echo %ESC%[94;107m Ybmmmd' %ESC%[%FG%;%BG%m
Echo=
Echo=
Echo=
Pause 1> NUL
GoTo :EOF
上述方法利用 powershell 使用当前控制台前景色和背景色来确定和创建变量。这可确保在处理完颜色更改的图像行后正确重置它们。 (编剧当然可以一开始就定义已知的颜色)
不过,我要补充一点,命令行应该用于键入命令和读取文本输出,而不是用于显示不必要的幼稚图像和颜色。如果您想要 GUI,请构建 GUI 程序,而不是控制台程序。