中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-14 17:22
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » 用批处理模拟搞笑开机画面
可打印版本  16,595 / 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