Board logo

标题: 单行显示多种颜色字符的批处理 [打印本页]

作者: Batcher    时间: 2008-9-16 15:17     标题: 单行显示多种颜色字符的批处理

代码功能:   实现纯批处理在单行显示不同颜色的彩色字符功能,并且不影响相临行文字的颜色值。 实现意义:   不调用非微软第三方工具实现、不生成任何临时文件。 实现价值:   没任何实用价值,纯为技术而挑战看上去不可能的技术。 实现版本:   稍微修改后均可以在CMD与MS-DOS版本上实现同样功能。 关于注释:   下面代码只是显示一堆字符而已,只为思考想法的可实现性。         如果用于显示特殊文字内容,下个版本可以随意完成,此演示无效。 测试版本: Windows CMD Shell 非全屏模式/全屏模式       目前不支持纯DOS,因为命令行过长所至,除非使用 Debug E命令直接写内存减少命令长度
  1. @echo off
  2. :: 显示单行彩色字符,其色彩值不影响本行以外的任何行
  3. ::
  4. :: Var Redtek 2006 - bbs.cn-dos.net
  5. set "var=A$_MOV,AH,09$_MOV,AL,2A$_MOV,BH,00$_MOV,BL,0E$_MOV,CX,0020$_INT,10$_"
  6. set "var=%var%MOV,BL,0A$_MOV,CX,000A$_INT,10$_INT,20$_$_g$_q$_"
  7. echo exit|%ComSpec% /k prompt %var%|debug>nul
复制代码
[运行方法: 先进入CMD以后,再输入这个批处理的名字运行。] [      如果在桌面直接鼠标双击运行,则一闪而过不会显示彩色内容] 上面代码没有任何实用价值,这也是偶然间想“挑战”一下那些调用第三方工具才能实现的功能,就想思考那些看上去不可能的事, 以上代码纯属思考着玩的一个想法,贴上和大家一起分享好玩的东东~:) 原帖地址:http://www.cn-dos.net/forum/viewthread.php?tid=25797
作者: too_lazy    时间: 2008-12-9 18:07

试过了!!!
不行~~~
作者: Batcher    时间: 2008-12-9 20:35     标题: 回复 2楼 的帖子

请列出测试用例、测试环境、测试结果。
但凭“不行”二字,恐怕观音姐姐来了也帮不上你。
作者: kingerpk    时间: 2009-2-7 21:39

请教楼主一个关于变色的问题:
我在论坛中看了相关的帖:
http://bathome.net/viewthread.php?tid=629&highlight=%B1%E4%C9%AB
自己也写了一个变色的代码:
  1. @echo off
  2. :1123
  3. setlocal enabledelayedexpansion
  4. set a=123456789abcfe
  5. set p=!random!%%14+1
  6. color 3!a:~%p%,1!
  7. echo @@@@@@@@@@@
  8. goto 1123
复制代码

但运行后显示:
设置默认的控制台前景和背景颜色。
COLOR [attr]
  attr        指定控制台输出的颜色属性
颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为
前景。每个数字可以为以下任何值之一:

    0 = 黑色       8 = 灰色
    1 = 蓝色       9 = 淡蓝色
    2 = 绿色       A = 淡绿色
    3 = 湖蓝色     B = 淡浅绿色
    4 = 红色       C = 淡红色
    5 = 紫色       D = 淡紫色
    6 = 黄色       E = 淡黄色
    7 = 白色       F = 亮白色

如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时
的颜色。这个值来自当前控制台窗口、/T 开关或
DefaultColor 注册表值。

如果用相同的前景和背景颜色来执行 COLOR 命令,COLOR 命令
请按任意键继续. . .

问题出在哪?

[ 本帖最后由 kingerpk 于 2009-2-7 23:07 编辑 ]
作者: Batcher    时间: 2009-2-7 22:49     标题: 回复 4楼 的帖子

第五行,涉及到数值计算时,应使用 set /a
作者: NeverOK    时间: 2009-4-25 22:13

这是个好东东。
测试通过。
问题是它和DOS下使用ANSI.sys显示彩色字体有什么区别呢?
我试过ANSI在WINPE2。0环境不能运行以外,其他WIN2000以上环境都可以

在WINPE2。0下把COMMAND.COM文件拷贝到WINDOWS\system32下也不行,闷。。。
作者: wwjpl    时间: 2009-5-17 07:17

我试过了,是绿颜色和黄色*号
作者: Batcher    时间: 2009-5-17 08:28     标题: 回复 7楼 的帖子

可以改成自己喜欢的颜色
作者: 慕夜蓝化    时间: 2014-12-15 09:47

debug 这个命令,确定在win764位中不存在,对吗?
作者: DAIC    时间: 2014-12-15 10:15

回复 9# 慕夜蓝化


    是的




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2