![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-14 17:37 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 用批处理模拟搞笑开机画面 |
| 可打印版本 16,610 / 52 |
| 第1楼 bagpipe | 发表于 2006-05-15 17:27 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
用批处理模拟搞笑开机画面 这个是我从网上看到很多人用这个作为自己的签名图片,我想大家也许也看到过,我想想,编写成批处理也不是不可能,不过最后一步没有实现,有兴趣的还请大家一起来研究,下面是代码和文件........
@echo off cls echo Microsoft Windows 2000 echo (C) 版权所有 1985-2000 Microsoft Corp. echo; set/p=%cd%^><nul&ping -n 2 127.1>nul&set/p="开"<nul&ping -n 2 127.1>nul&set/p="机"<nul&ping -n 2 127.1>nul&echo; echo '开机' 不是内部或外部命令,也不是可运行的程序 echo 或批处理文件。 echo. set/p=%cd%^><nul&ping -n 2 127.1>nul&set/p="快"<nul&ping -n 2 127.1>nul&set/p="开"<nul&ping -n 2 127.1>nul&set/p="机"<nul&ping -n 2 127.1>nul&echo; echo '快开机' 不是内部或外部命令,也不是可运行的程序 echo 或批处理文件 echo: set/p=%cd%^><nul&ping -n 2 127.1>nul&set/p="他"<nul&ping -n 2 127.1>nul&set/p="妈"<nul&ping -n 2 127.1>nul&set/p="的"<nul&ping -n 2 127.1>nul&set/p="开"<nul&ping -n 2 127.1>nul&set/p="机"<nul&ping -n 2 127.1>nul&echo; echo '他妈的开机' 不是内部或外部命令,也不是可运行的程序 echo 或批处理文件 echo; set/p=%cd%^><nul&ping -n 2 127.1>nul&set/p="你"<nul&ping -n 2 127.1>nul&set/p="他"<nul&ping -n 2 127.1>nul&set/p="妈"<nul&ping -n 2 127.1>nul&set/p="的"<nul&ping -n 2 127.1>nul&set/p="快"<nul&ping -n 2 127.1>nul&set/p="开"<nul&ping -n 2 127.1>nul&set/p="机"<nul&ping -n 2 127.1>nul&echo. echo '你他妈的快开机' 不是内部或外部命令,也不是可运行的程序 echo 或批处理文件 echo; set/p=%cd%^><nul&ping -n 2 127.1>nul&set/p="操"<nul&ping -n 2 127.1>nul&set/p="!"<nul&ping -n 1 127.1>nul&set/p="!"<nul&ping -n 2 127.1>nul&set/p="不"<nul&ping -n 2 127.1>nul&set/p="开"<nul&ping -n 2 127.1>nul&set/p="机"<nul&ping -n 2 127.1>nul&set/p="我"<nul&ping -n 2 127.1>nul&set/p="就"<nul&ping -n 2 127.1>nul&set/p="砸"<nul&ping -n 2 127.1>nul&set/p="了"<nul&ping -n 2 127.1>nul&set/p="你"<nul&ping -n 2 127.1>nul&set/p="!"<nul&ping -n 4 127.1>nul&echo. echo. echo. echo Loading Windows 2000... echo ================================================================================ 不过觉得自己写的有些过于烦琐,望高手提供最佳方法来实现........ [ Last edited by namejm on 2007-2-3 at 06:35 PM ] 附件 hellokiki.rar (465 bytes) |
|
| 第2楼 3742668 | 发表于 2006-05-15 19:18 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
最后的进度条可以尝试用cls+type+echo来解决。
先把屏幕上的输出保存到文件中,然后用一个循环来type那个文件的内容,并echo出进度条出来,在循环的开始部分用cls来清屏。 或者在最后一步调用一个vbs脚本,利用Wscript.StdOut的Write方法完成一个进度条是很容易的。 建议参考一下 无奈何 兄的签名。 |
|
| 第3楼 doscc | 发表于 2006-05-16 08:46 |
| 中级用户 发帖 93 积分 256 来自 广东 | |
|
看过那样的签名!.
是可以用 批处理来做一个. |
|
| 第4楼 bagpipe | 发表于 2006-05-16 08:48 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
3742668兄,你好,对于使用无奈何兄的签名代码的方法我也实验过了,在开始我本来就想用无奈何兄的签名代码的方式来编写,不过无奈何兄的代码在写入%cd%时候效果不是很好也没有找到合适的方法解决所以就只能这样写了,对于进度还3742668
兄指点一二! |
|
| 第5楼 bagpipe | 发表于 2006-05-16 09:31 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
doscc既然你说的这么轻松,写出来一个共享一下
|
|
| 第6楼 doscc | 发表于 2006-05-16 10:47 |
| 中级用户 发帖 93 积分 256 来自 广东 | |
|
我子细看了 破烂兄的代码.
前面部份兄以经写出来了. 但是我并没有说 得很轻松.请不要误会了. 下面是我写的 最后的进度 可能不是很好.不过兄可以参考一下. 用无奈何兄的代码可能更好吧. |
|
| 第7楼 bagpipe | 发表于 2006-05-16 10:52 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
"破烂兄",呵呵,有意思,不过你的代码我测试了一下,我希望的是用">"来逐个代替“="来进行进程的显示,兄的代码好像就是”=“逐步往前推进吧!!!!!!!!
|
|
| 第8楼 doscc | 发表于 2006-05-16 11:00 |
| 中级用户 发帖 93 积分 256 来自 广东 | |
|
呵呵.是 没错 逐步往前推进
用>可能不是很好.>在批处理是有特殊意议的.不过可以用 》来代替 试试 |
|
| 第9楼 bagpipe | 发表于 2006-05-16 11:06 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
NO, NO ,NO,兄好像还没有明白我的意思,我的意思就是用“>"逐步代替"=",就是说“=“符号已经充满整个DOS行,然后用>符号逐步去替代,不是是">"逐步往前走,是代替
|
|
| 第10楼 doscc | 发表于 2006-05-16 11:47 |
| 中级用户 发帖 93 积分 256 来自 广东 | |
|
不好意思啊。是我理解错误.
下面是我改过的代码 不过在变量堪套 %b:~%n%% 时出错(我也不知道为什么出错)。如果没有出错就可以实现最后的进度了。 |
|
| 第11楼 3742668 | 发表于 2006-05-16 13:31 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
由于使用的结构是call和goto,所以代码很是臃肿,不过这种代码利于阅读,所以就用的这种机构。 这个脚本其实主要要解决的问题应该是显示字符">"的问题,因为CMD默认是把它当作重定向来使用的,所以直接echo >是会出错的,正确的方法应该是在前面用符号"^"来转义。在批处理中连续赋">"到变量中并在最后用echo显示出来要用到的^符号是惊人的,所以干脆就用了set命令的替换功能,先赋值0到变量a中,然后在显示的时候把0全部替换成^>,并把变量b依次减少一位,这样就实现了模拟进度的显示。 另外值得注意的一点就是在这个模拟显示中延时的问题,如果用ping来实现的话,由于ping在系统内部返回是需要消耗时间 的,所以就算用ping -n 1 -w 1 0.0.0.2 来处理都不能实现要求,在这个脚本中用的是goto延时,考虑到不同机器的时钟频率不尽相同,所以设置了延时过程(暂且叫它过程吧)的参数,如果觉得效果不好的话可以自行修改。(当然,利用wmic的强大功能也可以根据不同CPU的频率来自动调节参数,不过这就不是这个话题的讨论范围了) |
|
| 第12楼 3742668 | 发表于 2006-05-16 14:37 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
另外关于依次显示字符的问题:
为了便于阅读,把代码格式改改... [ Last edited by 3742668 on 2006-5-16 at 15:02 ] |
|
| 第13楼 bagpipe | 发表于 2006-05-16 16:09 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
谢谢3742668兄的代码,认真学习中...............无限佩服中 .......................呵呵
:》 |
|
| 第14楼 doscc | 发表于 2006-05-16 16:27 |
| 中级用户 发帖 93 积分 256 来自 广东 | |
|
谢谢 3742668版主.
下面是我改过后的代码 虽然不是很好不过改一改还是好一点. 我真傻啊 前面用 set b1=%b1%- 来逐步增加 记然想不到用set b=%b:~1%来减少 还有版主 下面代码为什么 只显示 b%%而不是123? 变量不可以堪套吗? |
|
| 第15楼 doscc | 发表于 2006-05-16 16:30 |
| 中级用户 发帖 93 积分 256 来自 广东 | |
|
是不是变量只能是 以!为扩搌符时 才可以堪套
像这个 !显示字符:~%%i,1! |
|
| 1 2 3 4 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |