Board logo

标题: 【原】超越color命令 - CMD里显示彩色文字(XP/Vista有效) [打印本页]

作者: electronixtar     时间: 2007-5-4 19:19    标题: 【原】超越color命令 - CMD里显示彩色文字(XP/Vista有效)
很久没来论坛耍了,哈哈~~

在2000/XP/2003/Vista下保存代码为 test.cmd 双击运行下试试~~


@echo off
chcp 437>nul&&graftabl 936>nul
ren %WinDir%\System32\config.nt config.nt.bak 2>nul
<"%~f0" more +6 >%WinDir%\System32\config.nt
command /cecho 









参考帖子:
1. (已结)谁知道控制echo显示字串的颜色
2. 转贴:ANSI.SYS程序的使用

推荐网站:
ASCII Art Software

推荐软件:
Yet Another Ansi Editor 下载


---------------------传说中的分割线-----------------------
被Timo Salmi 收录到TSCMD里了,呵呵
http://groups.google.com/group/alt.msdos.batch.nt/browse_frm/thread/6199e8abcd0c71db

附:Timo Salmi 写的版本:完美备份了config.nt。

@echo off&&setlocal enableextensions
::
:: The paths
set ConfigNT=%WinDir%\System32\config.nt
set ConfigNTbak=%WinDir%\System32\config.nt.bak
::
:: Check that you have a backup or your original CONGIF.NT
if not exist "%ConfigNTbak%" (
echo.
echo Exiting %~f0
echo "%ConfigNTbak%"
echo File not found. Needed for restoring config.nt so first run
echo copy "%ConfigNT%" "%ConfigNTbak%"
goto :EOF
)
::
:: Use a copy of the backup as a double safety
copy "%ConfigNTbak%" "%temp%\CONFIG.NT">nul
::
:: Customize CONFIG.NT to use ANSI.SYS
> "%ConfigNT%" echo DOSONLY
>>"%ConfigNT%" echo dos=high, umb
>>"%ConfigNT%" echo device=%%SystemRoot%%\system32\himem.sys
>>"%ConfigNT%" echo files=40
>>"%ConfigNT%" echo DEVICE=%WinDir%\System32\ANSI.SYS /x
::
:: Choose the MS-DOS color
command /cecho 







Last edited by electronixtar on 2007-5-6 at 01:16 AM ]
附件 1: 1.JPG (2007-5-4 19:42, 65.87 KiB, 下载附件所需积分 1点 ,下载次数: 13)


附件 2: YAAE.rar (2007-5-4 19:43, 323.96 KiB,下载次数: 829)

作者: lxmxn     时间: 2007-5-4 19:25
electronixtar 很久没来了,一来就弄个好玩的东东,加分。

作者: slore     时间: 2007-5-4 19:31
没效果

作者: electronixtar     时间: 2007-5-4 19:33
Originally posted by slore at 2007-5-4 19:31:
没效果


编辑了好几次代码,再试试~~

作者: slore     时间: 2007-5-4 20:23
需要安装什么东西么?代码直接保存成CMD文件运行只有pause

作者: electronixtar     时间: 2007-5-4 20:29
Originally posted by slore at 2007-5-4 20:23:
需要安装什么东西么?代码直接保存成CMD文件运行只有pause

不会的吧?XP默认自带的

查看你的system32目录下

command.com

config.nt

把config.nt的内容贴上来

作者: slore     时间: 2007-5-4 21:12
config.nt
文件都没有……

作者: electronixtar     时间: 2007-5-4 21:52
呵呵,看来你的被优化掉了。

作者: baomaboy     时间: 2007-5-4 22:11
不错 我这里可用,没有config.nt试试保存下面几行代码。

DOSONLY
dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=40
DEVICE=C:\WINDOWS\System32\ANSI.SYS /x

作者: voiL     时间: 2007-5-4 22:19
哈哈,又有新东西了...

electronixtar每次都能给我们带来精彩...

作者: electronixtar     时间: 2007-5-4 23:06
偷偷告诉大家,中文的都可以彩色哦

Last edited by electronixtar on 2007-5-5 at 12:49 AM ]

作者: slore     时间: 2007-5-5 09:17
唉,没有效果

不知道还有什么问题呢。。。那个文件在,我开始看成WINDOWS了,那个在SYSTEM32下有。

作者: ccwan     时间: 2007-5-5 09:47
好东西!谢谢分享!

作者: barton     时间: 2007-5-5 11:06


好玩。。。

作者: xycoordinate     时间: 2007-5-5 11:27
为什么只能显示1次???第2次在运行就什么也不显示了!

config.nt
DOSONLY
dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=40
DEVICE=C:\WINDOWS\System32\ANSI.SYS /x

<img src="images/smilies/face-sad.png" align="absmiddle" border="0"><img src="images/smilies/face-sad.png" align="absmiddle" border="0"><img src="images/smilies/face-sad.png" align="absmiddle" border="0"><img src="images/smilies/face-sad.png" align="absmiddle" border="0"><img src="images/smilies/face-sad.png" align="absmiddle" border="0">

Last edited by xycoordinate on 2007-5-5 at 11:35 AM ]

作者: electronixtar     时间: 2007-5-5 11:38
Originally posted by xycoordinate at 2007-5-5 11:27:
为什么只能显示1次???第2次在运行就什么也不显示了!

config.nt
DOSONLY
dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=40
DEVICE=C:\WINDOWS\System32\ANSI ...

不会的吧?lxmxn也是这样的情况~~郁闷哦

作者: bjsh     时间: 2007-5-5 11:44
我也是只显示一次.....

作者: ccwan     时间: 2007-5-5 11:45
我也是这种情况。
莫非Vista不这样?

作者: bjsh     时间: 2007-5-5 12:00
进vista看看..

作者: bjsh     时间: 2007-5-5 12:18
现在在vista下;运行了显示ms-dos版本不匹配;


对了
ren %WinDir%\System32\config.nt %WinDir%\System32\config.nt.bak

因为这句语法是错的:
所以凡是运行过该批处理的 机子 里的config.nt全部被覆盖了;而且没有 config.nt.bak的备份 ;
这句应改为:
ren %WinDir%\System32\config.nt config.nt.bak

刚看了下 原来的xpsp2中的config.nt 的内容为(除了注释):
dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=40

vista就不知道了;

Last edited by bjsh on 2007-5-5 at 12:35 PM ]

作者: electronixtar     时间: 2007-5-5 12:32
Originally posted by bjsh at 2007-5-5 12:18:
现在在vista下;运行了显示ms-dos版本不匹配;

我估计问题出现在这里

ren %WinDir%\System32\config.nt %WinDir%\System32\config.nt.bak

因为这句语法是错的:
所以凡 ...


的确错了,我改~~

作者: fq1986     时间: 2007-5-5 12:42
不错哦...收下了...试试哦.......

作者: qzwqzwtest     时间: 2007-5-5 17:58
不太明白
DEVICE=%WinDir%\System32\ANSI.SYS /x
为什么不与其他语句采用同样的输出方式?
为什么不用%SystemRoot%变量代替%WinDir%?

而且在已经有config.nt.bak的情况下仍然ren的话会出错
只不过我们看不到
所以建议退出前还原

作者: ZJHJ     时间: 2007-5-6 15:06
哈哈,我修改了est的贴子.留下主要的.
@echo off
chcp 437>nul
graftabl 936>nul
if not exist CONFIG.NT copy %WinDir%\System32\CONFIG.NT CONFIG.NT
@cls
echo DEVICE=%WinDir%\System32\ANSI.SYS /x >%WinDir%\System32\CONFIG.NT
command /cecho 
command /cecho 我们要变化颜色了,你要变不变哦!
pause>nul
copy CONFIG.NT %WinDir%\System32\CONFIG.NT
del CONFIG.NT
exit

作者: electronixtar     时间: 2007-5-6 15:32
贴图啦,贴图啦


@echo off & setlocal enableextensions enabledelayedexpansion
cls
set cecho_=command /cecho
for /l %%i in (0,1,7) do (
for /l %%j in (2,1,9) do (
set /a k=%%j-2
%cecho_% 








Last edited by electronixtar on 2007-5-6 at 06:34 PM ]
附件 1: 1.jpg (2007-5-6 15:32, 57.46 KiB, 下载附件所需积分 1点 ,下载次数: 3)



作者: slore     时间: 2007-5-6 16:34
VISTA?

作者: bjsh     时间: 2007-5-6 16:46

作者: ZJHJ     时间: 2007-5-6 18:23
第 25 楼 你把代码贴出来撒

作者: 546474     时间: 2007-5-8 15:51
确实很牛,菜鸟望尘莫及啊。

作者: studythedos     时间: 2007-5-9 13:26
为什么只能显示一次,
再运行时就什么也没了

作者: zouzhxi     时间: 2007-5-9 15:16
好呀....漂亮,,,加分了....呵呵...

作者: ZJHJ     时间: 2007-5-9 22:37
Originally posted by studythedos at 2007-5-9 13:26:
为什么只能显示一次,
再运行时就什么也没了


不可能只显示一次! 每次启动都是一样的.
@echo off
::CMD里显示彩色文字
chcp 437>nul&&graftabl 936>nul
if not exist CONFIG.NT copy %WinDir%\System32\CONFIG.NT CONFIG.NT
@cls
echo DEVICE=%WinDir%\System32\ANSI.SYS /x >%WinDir%\System32\CONFIG.NT
@echo.
command /cecho 
command /cecho 



























































作者: lxmxn     时间: 2007-5-9 23:59
Originally posted by ZJHJ at 2007-5-9 22:37:
不可能只显示一次! 每次启动都是一样的.

我测试了很多次,也是只显示一次,再运行就没有效果了。

我想大家都说“只显示一次”都是他们经过测试之后才这样说的,不会无缘无故这样说,所以应该分析一下其中的原因。

作者: wld     时间: 2007-5-10 16:51
中文的都可以彩色哦

作者: ZJHJ     时间: 2007-5-10 19:52
Originally posted by lxmxn at 2007-5-9 23:59:

我测试了很多次,也是只显示一次,再运行就没有效果了。

我想大家都说“只显示一次”都是他们经过测试之后才这样说的,不会无缘无故这样说,所以应该分析一下其中的原因。


我的系统是xp sp2 我修改的这个在我机器上启动,每次都是正常的.由于有时启动时不显示第一行,所以在前面加了个空行.在启动时会修改CONFIG.NT文件的内容(不被修改则不会显示正常),由于原文件内容不知是什么程序用的,所以退出时恢复原文件.如果用bak备份CONFIG.NT即CONFIG.NT.bak,但我在System32文件夹搜索不到CONFIG.NT.bak,为了安全起见用了copy.

作者: 6622186     时间: 2007-5-10 23:32
那个ANSI编辑器怎么用?

作者: 6622186     时间: 2007-5-10 23:34
好漂亮啊! 为什么要用 config.nt 文件?

作者: philosophy     时间: 2007-6-20 00:47    标题: Parameter value not allowed - 936
运行出错?

作者: online365     时间: 2007-6-20 01:04
有趣,32楼的有时候行,有时候不行.
两次中间只有一次看得到.

谁能详细的说一下.CONFIG.NT是个什么文件吗?

作者: lililulula     时间: 2007-6-25 12:17
LZ我这里的问题也是 第一次成功运行 后来就没办法显示了

作者: yuhaoran     时间: 2007-6-25 19:48
下个附件都要积分啊!恼火!

作者: estar     时间: 2007-6-25 22:23
这个是论坛设置,我又不是故意设置积分。

作者: kcdsw     时间: 2007-6-26 17:08

@echo off &setlocal enableextensions enabledelayedexpansion
chcp 437>nul&&graftabl 936>nul
copy %WinDir%\System32\CONFIG.NT CONFIG.NT >nul 2>nul
echo DEVICE=%WinDir%\System32\ANSI.SYS /x >%WinDir%\System32\CONFIG.NT
cls
set cecho_=command /cecho
for /l %%i in (0,1,7) do (
for /l %%j in (2,1,9) do (
set /a k=%%j-2
%cecho_%






附件 1: 新建 BMP 图像.JPG (2007-6-26 17:08, 38.37 KiB,下载次数: 3)



作者: rockdong     时间: 2007-9-4 11:30
好玩的東西.

作者: afeichai     时间: 2007-9-5 23:36
只能显示一次

作者: vus520     时间: 2007-9-6 01:36    标题: 支持中文~~~
!

作者: wxcute     时间: 2007-9-6 21:59
删除“%WinDir%\System32\CONFIG.NT”文件就能显示了。

作者: htun     时间: 2007-10-9 14:34
没有效果

作者: hdzc     时间: 2007-12-30 16:28
只显示一次

作者: knock     时间: 2008-1-1 23:45
挺好玩的..

作者: londragon     时间: 2008-1-13 16:50
不错的东东。。。

作者: SamuelFish     时间: 2008-1-20 09:16
要是能一句一句给我解释下就好了,这么好的代码,可是我看不懂,晕了

作者: zhangzhaoc     时间: 2008-1-28 12:55
en真的 不错

作者: oszero     时间: 2008-3-13 11:15
学习一下

作者: keen     时间: 2008-8-16 17:50
楼主,厉害,这就玩的有点深了,我看不懂,看来要多学习了!

作者: JasonMing     时间: 2008-8-30 00:04
真的只能显示一次,谁知道原因???
我开始用了enableextensions,显示不到之后删了那一行,又能显示了,关了之后又显示不了了~~~

作者: driver1998     时间: 2008-9-12 16:55
在下的CONFIG.NT是:
DOSONLY
dos=high, umb
device=%SystemRoot%\system32\himem.sys
DEVICE==%SystemRoot%\System32\ANSI.SYS /x
files=40

但好像没效果:
附件 1: 01.jpg (2008-9-12 16:55, 46.25 KiB, 下载附件所需积分 1点 ,下载次数: 1)



作者: driver1998     时间: 2008-9-12 16:59
怎样都没用,只有黑屏

作者: ktv98     时间: 2008-9-17 23:12
只显示一次

作者: simplenoughappy     时间: 2009-3-19 02:29
有时候能正常显示...有时候不能,实在是不能理解啊....
为何会如此?

作者: Fair     时间: 2009-8-23 01:34
无法输出特殊字符吧
即使是用转义符也无法输出....

作者: xswdong     时间: 2009-8-26 06:41
xp
只显示一次,以后不管谁的都不在显示了

作者: driver1998     时间: 2009-10-24 20:45
Vista测试1楼和25楼的代码,完全成功!

作者: lincc0519     时间: 2009-10-25 00:42
弄上那么多代码,看得都晕
我上传一文件,比echo命令强N多倍
http://upload.cn-dos.net/img/1734.rar
命令用法
EchoX 2.5 - (C) 2004-2006 by Bill Stewart (bstewart@iname.com)

Usage: echox ] ] message
or: echox -l

-c Specifies a color (01-FE).
-f, -b Specifies the foreground and background colors (0 through F).
-n Do not skip to the next line.
-w Specifies the message should be 'width' characters wide.
-r Right-aligns the message with respect to the specified width.
-e Centers the message with respect to the specified width.
message The text to be displayed.
-l Lists available colors in a table.

When specifying colors, the foreground color cannot match the background color.
If you specify -c, you cannot specify -f or -b (and vice versa).

The message can contain the following escape sequences: ~n (return), ~r (line
feed), and ~t (tab). To display a literal '~' if it's followed by n, r, or t,
use '~~'. Escape sequences are ignored if -w is specified.
——————————————————————————————————————————
首先,我们可以使用-l 参数来看看它的颜色编码,可以在命令行键入"echox -l"。
可以看出和上面的 ColorX 的颜色编码是一样的。

-c 参数指定字体颜色和背景颜色。比如 echox -c ce "www.baidu.com" 可以在红色背景上显示黄色的 www.baidu.com

-f、-b 参数分别指定字体颜色和背景颜色。

-n 参数表示不换行的意思,在for循环里面比较常用。

-w 参数表示指定的字符在命令行显示的宽度,后面直接跟一个表示宽度的数字就可以了。

-r -e 参数分别表示居右,居中显示,缺省是居左显示的。

举个例子: for /l %i in (9,-1,0) do @echox -c %i1 -n -r -w 30 "Www.Baidu.coM"
有兴趣的朋友可以多研究一下,可以做出很多好玩的东东。 =_+

作者: naiveboy520     时间: 2009-10-31 17:59
呜呜呜 看不明白

作者: naiveboy520     时间: 2009-10-31 18:04
我怎么感觉修改了config.nt文件呀 安全吗?

作者: basswood     时间: 2010-5-25 09:57
呵呵,纯支持一下......

作者: qq910202284     时间: 2010-5-26 02:45
试玩下 哈哈!!

作者: a85103531     时间: 2010-6-1 13:41
运行第二次就不行了。

作者: gudou     时间: 2010-12-23 13:12
奇怪的情况,有时可以有时不行……??

我是XP环境。

Last edited by gudou on 2010-12-23 at 15:51 ]

作者: acaigg     时间: 2010-12-28 09:27
学习了