中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创][批处理单行显示多种颜色字符]
« [1] [2] [3] »
作者:
标题: [原创][批处理单行显示多种颜色字符] 上一主题 | 下一主题
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 16 楼』:  


  我的问题和 ccwan 兄的一样。


2006-12-19 06:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 17 楼』:  

原理,下面的汇编代码使用prompt原理通过管道给Debug运行~:)
下面的代码中加入了注解~:)
0B03:0100 MOV,AH,09              ;    09H号功能调用
0B03:0102 MOV,AL,2A              ;    把字符2AH(就是*号的16进制ASCII码)装入AL寄存器
0B03:0104 MOV,BH,00              ;    彩色显示卡支持0~7页,把0页装入BH寄存器
0B03:0106 MOV,BL,0E              ;     把颜色值送入BL寄存器。(黄颜色:1110二进制,转16进制为:0EH
0B03:0108 MOV,CX,0020            ;    这个符号的显示次数20H送入CX.
0B03:010B INT,10                 ;    显示器中断调用10H  
0B03:010D MOV,BL,0A              ;    换一种颜色 (1010绿色,转16进制是AH)
0B03:010F MOV,CX,000A            ;    和上面一样,显示次数
0B03:0112 INT,10
0B03:0114 INT,20                 ;    结束返回
初学汇编,原理没什么神秘的,用批处理“包装”了一下~:)
等以后再做更多更好玩的东东~:)

[ Last edited by redtek on 2006-12-18 at 05:57 PM ]



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-19 06:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 18 楼』:  

真诱人啊,我也想学汇编...............



我今后在论坛的目标就是做个超级坏人!!!
2006-12-19 06:49
查看资料  发短消息 网志  OICQ (329429)  编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 19 楼』:  

顶呀,加分~~~牛xxxxx贴




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-12-19 07:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 20 楼』:  

我最多就只能+23了,明天继续给你加~~




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-12-19 07:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hxuan999
中级用户

DOS之日


积分 337
发帖 161
注册 2006-11-4
状态 离线
『第 21 楼』:  

我运行的结果如下:



删除"echo exit|"代码后可以看到如下结果:



要再输入exit来退出.如下:



不知是什么原因,好像那一串星号一闪而过的感觉.
请高手指教

[ Last edited by hxuan999 on 2006-12-18 at 07:54 PM ]



for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
2006-12-19 07:47
查看资料  发送邮件  发短消息 网志  OICQ (33899867)  编辑帖子  回复  引用回复
yardian
中级用户




积分 305
发帖 85
注册 2005-5-23
状态 离线
『第 22 楼』:  

呵呵,我可以了啊。不错。效果挺好的。

2006-12-19 10:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 23 楼』:  



  Quote:
Originally posted by electronixtar at 2006-12-18 18:31:
我最多就只能+23了,明天继续给你加~~

@#$@#%#$@%狂晕!
被electronixtar兄这么高的加分和大家的加分感动死了!!!



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-19 12:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 24 楼』:  

看hxuan999兄的截图是日文版CMD~:)
看到那个 echo exit| …… 好象 exit 没有 “走” 管道,
如果猜的没错的话日文CMD环境中所用的管道符号不是 "|" ,而是另一个。

(等等……或是 "|" 这个管道符号的ASCII码在日文里是另一个编码--反正就是编码不一样导制了不识别,兄试一下看看)

(或是,兄在日文界面内执行 CHCP 437 切到英文状态,看看是不是可以运行这个代码了?)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-19 12:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 25 楼』:  

  真是奇怪了,在我的电脑上始终没有彩色效果。另外,右侧的下拉条有时候还是会出现。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-19 12:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 26 楼』:  

我的电脑上也没有效果,只显示暂停-_-|||

2006-12-19 12:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 27 楼』:  

程序使用了debug的汇编脚本,应该算不上“纯批处理”

当然,过多纠缠于概念是没有什么意义的,这里着重讨论技术

使用 %comspec% 来传递脚本虽有创新意义,但是缺乏实用意义

从可读性上来讲,可以将汇编脚本分行下载批处理前段,这样的形式可以更好的注释

从简洁性上来讲,可以将汇编代码的16进制值保存在变量中,然后使用for+echo传递

另外——

汇编脚本虽然很通用且有效,但因为过于底层,所以需要穿越的障碍较多

比如在我的主机上测试时,它被KAV6拦截了,允许后方可正常显示效果

2006-12-20 01:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 28 楼』:  

我这也没有什么效果

2006-12-20 01:26
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 29 楼』:  

多谢qzwqzw兄指点~:)))



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-20 01:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 30 楼』:  

vkill兄行进入 CMD ,再输入这个批处理代码的文件名运行就可以了:)
如果直接鼠标双击在桌面上的这个批处理,则一闪而过,不会有效果~:)

%comspec% 在 Windows环境内是调用 CMD.EXE
       为了在纯 MS-DOS 环境内也兼容,在纯DOS内, %comspec% 就自动调用 Command.com 。



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-20 01:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: