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 electroniXtar
pause>nul&exit
DOSONLY
dos=high, umb
device=%SystemRoot%\system32\himem.sys
DEVICE==%SystemRoot%\System32\ANSI.SYS /x
files=40
参考帖子:
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 ANSI.SYS turn on
   ::
   :: Restore the original CONFIG.NT
   copy "%temp%\CONFIG.NT" "%WinDir%\System32\">nul
   if exist "%temp%\CONFIG.NT" del "%temp%\CONFIG.NT">nul
   endlocal & goto :EOF
[ Last edited by electronixtar on 2007-5-6 at 01:16 AM ]
附件 1: 1.JPG (2007-5-4 19:42, 65.87 K, 下载附件所需积分 1点 ,下载次数: 13)


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

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


  Quote:
Originally posted by slore at 2007-5-4 19:31:
没效果

编辑了好几次代码,再试试~~
作者: slore     时间: 2007-5-4 20:23
需要安装什么东西么?代码直接保存成CMD文件运行只有pause
作者: electronixtar     时间: 2007-5-4 20:29


  Quote:
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



[ Last edited by xycoordinate on 2007-5-5 at 11:35 AM ]
作者: electronixtar     时间: 2007-5-5 11:38


  Quote:
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


  Quote:
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_% [%%j;%%i1H[4!k!;3%%im[4!k!;3%%i;1m
       )
     )
   %cecho_% The end of the demo by Prof. Timo Salmi
   endlocal & goto :EOF
[ Last edited by electronixtar on 2007-5-6 at 06:34 PM ]
附件 1: 1.jpg (2007-5-6 15:32, 57.46 K, 下载附件所需积分 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


  Quote:
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                                  登鹳雀楼
@echo.
@echo.
command /cecho                           白日依山尽,黄河入海流。
@echo.
command /cecho                           欲穷千里目,更上一层楼。
@echo.
@echo.
@echo.
@echo.
command /cecho                                    下江陵
@echo.
@echo.
command /cecho                        朝辞白帝彩云间,千里江陵一日还。
@echo.
command /cecho                        两岸猿声啼不住,轻舟已过万重山。
@echo.
@echo.
@echo  继续下页
pause>nul
@cls
@echo.
@echo.
@echo.
command /cecho                                  关山月
@echo.
@echo.
command /cecho                          明月出天山,苍茫云海间。
@echo.
command /cecho                          长风几万里,吹度玉门关。
@echo.
command /cecho                          汉下白登道,胡窥青海湾。
@echo.
command /cecho                          由来征战地,不见有人还。
@echo.
command /cecho                          戍客望边色,思归多苦颜。
@echo.
command /cecho                          高楼当此夜,叹息未应闲。
@echo.
@echo.
pause>nul
copy  CONFIG.NT  %WinDir%\System32\CONFIG.NT
copy  CONFIG.NT  %WinDir%\System32\CONFIG.NT
del  CONFIG.NT
exit

:: color 颜色代码说明:
:: 0 -- 默认颜色(黑屏白字)
:: 1 -- 高亮度字体颜色
:: 5 -- 字符闪烁
:: 8 -- 取消字符属性

:: 30 -- 黑色前景       40 -- 黑色背景
:: 31 -- 红色前景       41 -- 红色背景
:: 32 -- 绿色前景       42 -- 绿色背景
:: 33 -- 黄色前景       43 -- 黄色背景
:: 34 -- 蓝色前景       44 -- 蓝色背景
:: 35 -- 紫色前景       45 -- 紫色背景
:: 36 -- 青色前景       46 -- 青色背景
:: 37 -- 白色前景       47 -- 白色背景
作者: lxmxn     时间: 2007-5-9 23:59


  Quote:
Originally posted by ZJHJ at 2007-5-9 22:37:
不可能只显示一次! 每次启动都是一样的.

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

我想大家都说“只显示一次”都是他们经过测试之后才这样说的,不会无缘无故这样说,所以应该分析一下其中的原因。
作者: wld     时间: 2007-5-10 16:51
中文的都可以彩色哦
作者: ZJHJ     时间: 2007-5-10 19:52


  Quote:
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_%[%%j;%%i1H[4!k!;3%%im[4!k!;3%%i;1m
       )
     )
   %cecho_%The end of the demo by Prof. Timo Salmi
   endlocal
copy  CONFIG.NT  %WinDir%\System32\CONFIG.NT >nul 2>nul && del  CONFIG.NT >nul 2>nul
pause >nul&exit
附件 1: 新建 BMP 图像.JPG (2007-6-26 17:08, 38.37 K,下载次数: 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 K, 下载附件所需积分 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 [-c color | [-f fg] [-b bg]] [-n] [-w width [-r | -e]] 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
学习了