标题: 【原】超越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;31mele[32mct[33mroni[35mX[36mtar[m
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 [0;40;31;1mANSI.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
[1;31m
好玩。。。
作者: 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 [1;31m我们要[32m变化[33m颜色了,[35m你要[36m变不变[37m哦!
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_% [40;30;1mThe 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 [1;36m 登鹳雀楼
@echo.
@echo.
command /cecho [1;35m 白日依山尽,[33m黄河入海流。
@echo.
command /cecho [1;32m 欲穷千里目,[31m更上一层楼。
@echo.
@echo.
@echo.
@echo.
command /cecho [1;33m 下江陵
@echo.
@echo.
command /cecho [1;32m 朝辞白帝彩云间,[36m千里江陵一日还。
@echo.
command /cecho [1;31m 两岸猿声啼不住,[35m轻舟已过万重山。
@echo.
@echo.
@echo 继续下页
pause>nul
@cls
@echo.
@echo.
@echo.
command /cecho [1;31m 关山月
@echo.
@echo.
command /cecho [1;32m 明月出天山,苍茫云海间。
@echo.
command /cecho [1;33m 长风几万里,吹度玉门关。
@echo.
command /cecho [1;35m 汉下白登道,胡窥青海湾。
@echo.
command /cecho [1;36m 由来征战地,不见有人还。
@echo.
command /cecho [1;37m 戍客望边色,思归多苦颜。
@echo.
command /cecho [1;31m 高楼当此夜,叹息未应闲。
@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_%[40;30;1mThe 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
学习了