What is %0|%0 and how does it work?

command-line, windows

Solution

This is the Windows version of a fork bomb.

`%0` is the name of the currently executing batch file. A batch file that contains just this line:

%0|%0

Is going to recursively execute itself forever, quickly creating many processes and slowing the system down.

This is not a bug in windows, it is just a very stupid thing to do in a batch file.

Problem

If you run a .bat or .cmd file with `%0|%0` inside, your computer starts to use a lot of memory and after several minutes, is restarted. Why does this code block your Windows? And what does this code programmatically do? Could it be considered a "bug"?

Original source