什么是%0 |%0,它是如何工作的?

如果在内部运行带有%0|%0的.bat或.cmd文件,计算机将开始使用大量内存,几分钟后重新启动。 为什么这个代码阻止你的Windows? 这段代码在编程上做了什么? 它可以被认为是一个“bug”?

这是一个叉式炸弹的Windows版本。

%0是当前正在执行的batch file的名称。 包含这一行的batch file:

 %0|%0 

将会recursion地永久执行,快速创build许多进程并放慢系统速度。

这不是Windows中的错误,在batch file中这只是一个非常愚蠢的事情。

这被称为叉式炸弹。 它一直在分裂,直到没有select,只能重新启动系统。 http://en.wikipedia.org/wiki/Fork_bomb

这是什么:

%0|%0是一个叉子炸弹 。 它将使用pipe道产生另一个进程 它asynchronous地运行相同的程序的副本。 这使CPU和内存变慢,使系统变慢(甚至导致系统崩溃)。

这是如何工作的:

%0是指用来运行当前程序的命令。 例如, script.bat

pipe道| 符号将使第一个命令序列的输出或结果成为第二个命令序列的input。 在一个叉式炸弹的情况下,没有输出,所以它将简单地运行没有任何input的第二个命令序列。

展开示例, %0|%0可能意味着script.bat|script.bat 。 这再次运行,但也创build另一个进程再次运行相同的程序(没有input)。

这是一个逻辑炸弹,它不断重新创build,占用你所有的CPU资源。 它使您的计算机负载过重,迫使它closures。 如果你在这个文件中创build一个batch file并启动它,你可以使用taskmgr来结束它。 你必须很快做到这一点,否则你的电脑将太慢,无法做任何事情。