如果您在%0|%0
内部运行.bat或.cmd文件,则计算机将开始使用大量内存,并在几分钟后重新启动。为什么此代码会阻止Windows?这段代码以编程方式做什么?可以将其视为“错误”吗?
Answers:
这是Windows版的前叉炸弹。
%0
是当前正在执行的批处理文件的名称。仅包含以下行的批处理文件:
%0|%0
将永远递归执行,快速创建许多进程并降低系统速度。
这不是Windows中的错误,而是在批处理文件中做的非常愚蠢的事情。
.bat
文件的作用是:读取指令,在文件末尾终止。如果您运行%0:进程1:开始,运行%0(因此创建进程2);然后死掉进程2:开始,运行%0(因此创建进程3);然后死掉,因为创建者将死掉,所以您最多只能运行两个进程。前叉炸弹的重点是创建2个版本。因此,P1创建2个进程(1'和1“),这两个进程将分别创建2(因此4),并呈指数级增长
这被称为叉炸弹。它会一直分裂,直到没有其他选择,只能重新启动系统。 http://en.wikipedia.org/wiki/Fork_bomb
$0; $0
可在bash和zsh中使用,已在Ubuntu 14.04上测试)