找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20370|回复: 10

[特效代码] 批处理中的转义符为何把内存在十秒之内会用得精光

[复制链接]
发表于 2009-4-30 20:08:46 | 显示全部楼层 |阅读模式
@echo off
>>a.txt echo ^%^%

运行上面这段代码你会发现你电脑的内存十秒之内会用得精光,  天呀太恐怖了! 哪个能解释这是为什么  这应当是批处理最简短的一个病毒写法吧晕晕

再试试
echo ^%^%>>a.txt
却没有出现这个现像


还有关于为什么批处理在DOS窗口 "%i"   要写成"%%i"的原因:

“ % ”    要写入文本不能用“^ ”  转义     要用“%”来转义  如:
echo.%%i>a.bat   
打开a.bat   
你会发现   只一个%i    这因当是批处理文本为什么%i 要写成%%i的真正原因吧

[ 本帖最后由 x9tiancmd 于 2009-4-30 20:21 编辑 ]

评分

参与人数 2PB +5 技术 +1 收起 理由
CrLf + 1 恐怖的结果
wxcute + 5 有意思的发现。

查看全部评分

 楼主| 发表于 2009-4-30 20:23:15 | 显示全部楼层
>>a.txt echo ^%^%
谁能解释下这 个运行为什么会出现内存一下耗光的情况  呀   

知道的说下嘛
发表于 2009-4-30 20:31:47 | 显示全部楼层
是不是把磁盘剩下的文件全都写进去?
猜想:转义结尾符

echo ^%^%>>a.txt
却没有出现这个现像
因为只转义了一个>符号
发表于 2009-4-30 20:43:01 | 显示全部楼层
对NULL字符转义的结果吧,你确定echo ^%^%后面无任何内容了吗? 任何,包括回车或者其他空白字符。
 楼主| 发表于 2009-4-30 20:43:19 | 显示全部楼层
我到虚拟机里面用空白虚拟磁盘试下   

等下有了结果再来回复下   嘿嘿
 楼主| 发表于 2009-4-30 20:53:55 | 显示全部楼层
虚拟机试了没是 但是我这就是运行就内存十秒内用个精光, 真是怪事来了

我就复制上面的代码保存为BAT(附件里有) 运行的,   不信你们自忆试下嘛,  真的太恐怖了

[ 本帖最后由 x9tiancmd 于 2009-4-30 20:57 编辑 ]
发表于 2009-4-30 21:55:20 | 显示全部楼层
测试了下,确实是的,好像是因为echo后没有换行,至于为什么这样就不知道了,好像形成了个死循环。难道是因为转义符号没东西转?
 楼主| 发表于 2009-4-30 21:59:34 | 显示全部楼层
因当不是死循环,   你多加入一条命令 (红色的)
@echo off
>a.txt  echo.^%
>>a.txt  echo.^%^%

你运行这个,  它根本就没有创建a.bat  出来呀,,   你说这不是怪了,死循环最少也会创建“a.bat”吧
发表于 2009-5-1 00:49:10 | 显示全部楼层
原帖由 随风 于 2009-4-30 21:55 发表
测试了下,确实是的,好像是因为echo后没有换行,至于为什么这样就不知道了,好像形成了个死循环。难道是因为转义符号没东西转?


我猜是因为^后边没回车,执行时转义破坏了textfile的eof标志,因为标志的最后一个ascii码是0x13
而使用追加符又跳过了行输出长度检查,所以造成批处理一直往缓存空字符

评分

参与人数 2PB +5 技术 +1 收起 理由
jinzeyu + 1 乐于助人
wxcute + 5 好解释。

查看全部评分

发表于 2009-5-1 11:23:18 | 显示全部楼层
我这儿内存倒是不会被用光,只是严重影响了运行速度。

echo ^%^% 先把 ^ 当作变量解释,变量 ^ 未定义,因此等同于 echo ^
>>a.txt echo ^%^% 等同于 >>a.txt echo ^
 楼主| 发表于 2009-5-3 21:22:44 | 显示全部楼层
嗯  楼上的说法好像蛮有理的,   呵呵,,  学习了谢谢


    难道说,  这echo     是:  先写入内存, 再生成 a.bat ?   然后再把内存的数据写入a.bat  ??

我用个十几M的文件没这个现像呀,,,     好像是:   先生成a.bat    再把数据 慢慢的写入a.bat  看到窗口里面的  a.bat 文件变化呀 ??



还是有点?    我想也只能是楼上的么解释了@

[ 本帖最后由 x9tiancmd 于 2009-5-3 21:28 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:45 , Processed in 0.021466 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表