0

有没有办法让它像这样显示文本?:

你好吗?

每个单词都有不同的颜色吗?

在批处理代码中。不过,我知道 Color 命令:)

4

4 回答 4

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 上都有)。

所以,祝你好运。

于 2013-02-22T05:54:36.683 回答
1

是的,有,如果你使用cmdcolor

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

Hello,将是红色、how- 绿色、are- 黄色和you?- 蓝色。

于 2014-02-13T12:17:07.393 回答
0

不,您不能,因为 cmd 不理解例如修改文本颜色所需的 ANSI 转义序列。现在,根据您的冒险精神,这个巧妙的技巧、额外的实用程序(如ansicon或使用 bash)可能都是可能的解决方法。

于 2013-02-22T01:10:43.487 回答
0

通过使用 Visual Studio Community 2015,人们(和我)制作了扩展 BATCH 限制的程序。基本上,如果您愿意,人们(和我)会制定一个外部“命令”。Batbox将工作做得最好。将应用程序放在 BATCH 文件的当前目录中,然后尝试执行类似这样的操作

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

它应该带有彩色文字“Hello World!”。Batbox 这里使用的标签都是标签。放我给你几个

/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 是什么?M 是被点击的变量。左键单击和右键单击。左键单击=1 右键单击​​=2。如果按下键方式,它将以 idk 格式返回一个数字。在一个总结的batbox中可以做很多事情!

于 2016-03-28T18:09:04.063 回答