批量生成颜色中间的颜色?

时间:2013-02-22 00:48:21

标签: batch-file colors

有没有办法让它可以显示这样的文字?:

你好,你好吗?

并且每个单词都是不同的颜色?

批处理代码。 我知道Color命令,但是:)

4 个答案:

答案 0 :(得分:2)

与fvu所说的不同,有一种相当简单的方法可以做到这一点。

首先,将其复制到文本编辑器中并将其另存为ncol.bat。确保将其保存在与其他文件相同的位置。

@echo off
setlocal
if "%~1"=="/?" (
echo.
echo    ncol ["Text"] [Colour]
echo.
echo "Text" - The text you want displayed in another colour.
echo          Remember that spaces cannot be added if you don't put the text in
echo          quotation marks (""^).
echo.
echo Colour - The hexadecimal colour code that you want the text to be changed into.
echo          For more information of colour codes, see "color /?"
echo.
exit /b
)
for /f "delims=#" %%i in ('"prompt #$H# &for %%b in (1) do rem"') do set "bs=%%i"
<nul >"%~1.@" set /p "=.%bs%%bs%%bs%%bs%"
findstr /p /a:%2 . "*.@"
endlocal
del "*.@"
@echo on
@exit /b

以下是如何使用它的示例...

ncol "Hello, " 01 && ncol "how " 02 && ncol "are " 03 && ncol "you" 04

这会在黑色显示红色Hello,,黑色显示绿色how,黑色显示青色are,黑色显示红色you

不幸的是,我的简单版本无法处理特殊字符(如问号),但有一些可以处理(本网站和www.dostips.com都有)。

所以,好运。

答案 1 :(得分:1)

是的,如果您使用cmdcolor

echo \033[91mHello, \033[92mhow \033[93mare \033[94myou?

Hello,为红色,how - 绿色,are - 黄色,you? - 蓝色。

答案 2 :(得分:0)

不,你不能,因为cmd不理解修改文本颜色所需的ANSI转义序列。现在,根据您的冒险行为this neat trickansicon等额外实用程序或使用bash可能都是可行的解决方法。

答案 3 :(得分:0)

使用Visual Studio Community 2015,人们(和我)制定了扩展BATCH限制的程序。基本上,人们(和我)制造一个外部的&#34; Command&#34;如果你愿意的话。 Batbox让工作做得最好。将应用程序放在BATCH文件的当前目录中并尝试执行类似这样的操作

batbox /g 20 20 /c 0x0f /d "Hello" /c 0x0a /d " World" /c 0x09 /d "!"

它应该带有丰富多彩的文字说&#34; Hello World!&#34;。 Batbox使用标签  here are all tags。我会给你一些

/g = Cursor Position (Ex: batbox /g 20 20)
/c = Color (Ex: batbox /c 0x0f) Make sure 0x is before color
/d = Prints text. (Ex: batbox /d "Hello World")

此外,您还可以获得鼠标点击和击键!

batbox /k

按键将以%errorlevel%和键盘格式(数字)

返回
batbox /m
batbox /y

将获得鼠标点击。由于它返回三个退出代码,我们需要一个for语句。

for /f "delims=: tokens=1,2,3" %%A in ('batbox /m') do set/a "x=%%A", "y=%%B", "M=%%C"
X和Y应该只是自我探索,但你问的是什么? M是单击的变量。左键单击并右键单击。左键单击= 1右键单击= 2。如果按下一个键,它将返回一个idk格式的数字。在总结batbox中可以做很多事情!