如何将多种颜色应用于“线条"?在Windows命令提示符下? [英] How can I apply multiple colors to "Lines" in Windows Command Prompt?
问题描述
我是此网站上的新手,我想问你如何在CMD中按行(或列)应用多种颜色.随时编辑以下代码,我也希望单词的颜色与经典的Google Chrome浏览器的颜色相似.
I am a newbie here on this website and I would like to ask you how to apply multiple colors by line (or column maybe?) in CMD. Feel free to edit the codes below, I would also like the color of the words to be similar like the classic Google Chrome colors.
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
推荐答案
以下是 windows-10 Gerhard已经建议的ANSI转义代码方法.
Here's a somewhat neater looking version of the windows-10 ANSI escape code method, already suggested by Gerhard.
@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
您甚至可以把它弄乱,放入一个明亮的白色盒子中,例如:
You could even mess around with it to put it into a bright white box, for instance:
@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 的问题,并使用当前控制台的前景色和背景色创建变量.这样可以确保在处理了颜色更改的图像行后正确重置它们. (当然,脚本编写者从一开始就可以定义已知的颜色)
This above method leverages powershell to determine, and create variables using the current console foreground and background colors. This ensures that they are reset correctly after the color changed image lines have been processed. (Of course the script writer could just define known colors, right from the outset)
我要补充一点,命令行应该用于键入命令和读取文本输出,而不是用于显示不必要的幼稚图像和颜色.如果要使用GUI,请构建一个GUI程序,而不是控制台程序.
这篇关于如何将多种颜色应用于“线条"?在Windows命令提示符下?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!