【技术分享】趣谈批处理文件%0|%0
前言
大家好,我是路明。这期文章我想和大家浅谈一下 在Windows下,批处理文件中%0|%0命令的意义。
%0|%0运行的效果
提起%0|%0运行后的效果,相比懂点电脑的小伙伴都会或多或少地在网络上发现过诸如“只有5个字符就能卡爆你的电脑!快拿来整蛊你的朋友!”之类的文章,那么它的效果可想而知了:
此时此刻,电脑弹出了一个窗口,不断地显示该批处理文件所处的目录
你打开了任务管理器,发现电脑的CPU和内存占用率直线飙升
你发现你的鼠标移动开始卡顿,那个批处理文件的运行窗口开始无响应
你发现批处理文件的窗口上显示了一些你看不懂的文字(类似于^C之类的)
你发现你的电脑完全无法操作了
你发现电脑卡在了某一界面,再也无法移动
那么要解决这种办法,也很简单。
2.趁着电脑还没有卡死,注销电脑
如果上述方法都没有解决的话,那就只能关机喽§(* ̄▽ ̄*)§
原理
好了,不小心扯了那么多,接下来和大家分享一下这个批处理文件的原理。
首先,%0 在批处理文件中代表批处理文件本身,即如果运行%0,命令行会再次运行这个批处理文件。
其次,| 在批处理文件中代表如果否,即如果执行该符号前的命令失败后,会执行该符号后的命令。
那么组合起来,%0|%0就代表以下意思
执行这个批处理文件本身,如果执行失败,那么依然执行这个批处理文件本身。
可以把整个过程理解为图形化编程中的永远循环,即永远执行这个批处理文件本身,永不停止。
同理程序分享
在Windows命令行(cmd)中,有一些代码可以同样实现类似于%0|%0的效果。
程序1
start cmd
%0
分析:根据代码可直观地看到,第一行代码中“start”是“启动”的意思,“cmd”即Windows中的命令行主程序(cmd.exe)。“%0”则为前文中提到的,重复再执行一遍该批处理文件。
当批处理文件再次执行自身的时候,依然会再次运行自身,达成无限循环的效果。
不过,该方法的效果直观可见,运行后,屏幕上会快速出现一堆命令行窗口,同样会造成卡慢,死机的效果,当然也是可以通过前文提到的解决方法来解决的。
程序2
:start
start cmd
goto start
分析:
:start
- 这是一个标签。在批处理脚本中,标签通常用于标识某一部分的代码,以便于使用goto
命令跳转到该标签。start cmd
- 这行命令尝试启动一个新的命令提示符窗口。但是,实际上这里有一个小错误。start
是一个命令,后面应该直接跟参数(这里是cmd
),而不是应该有空格。正确的写法应该是start cmd
。goto start
- 这是一个跳转命令。它会将脚本的控制权跳转到名为“start”的标签处,从而形成一个无限循环。这意味着一旦脚本开始执行,它会不断地启动新的命令提示符窗口,直到用户手动停止脚本的执行。
结束语
本期文章的分享就到这里了,我是路明,我们下期文章再见!