bat程序连续执行不能退出关闭及其妙用
1、我们创建一个cmd命名的bat文件,并且bat的内容也是cmd,此时运行后发现dos窗口中cmd不停运行,无法停止,并且没有任何cmd指令的回应。
1、以上看上去似乎不合逻辑,其实是大家对逻辑的误判。
解释:当我们执行bat文件时,文件内容执行cmd,这相当于回调了cmd.bat文件本身,然后依次执行该循环,无穷无尽。
解决:我们只需要将文件更改为test.bat即可。也就是不要讲bat文件轻易命名为cmd,一定不要忽略这一点,请对关键词保持敬畏。
1、如果我们有两个bat文件,但是两者之间构成嵌套&引用关系,有时候也会遇到无限循环。
2、我们可以看一下文件指令本身,主程序test.bat的指令时cmd;
而同目录下有一个cmd.bat文件,而cmd.bat本身的指令时cmd;
注:同目录下的bat文件可以通过名称直接互相引用
3、当我们双击test.bat文件,相当于激活了cmd.bat文件,其又开始疯狂的回调其自身。
1、此时我们可以不修改cmd.bat的名称,我们将其内容修改为:
@cmd.exe;
此时就可以达到查看cmd指令内容的目的。
注:相同功能下对cmd和cmd.exe进行选择时,请选择后者。
1、看到以上,我们其实发现其用途还是很广泛的。例如其可以自动不间断的执行某些命令,简直就是状态机的存在。
我们在cmd.bat文件的程序中,在第一行输入要执行的指令,最后以cmd结尾;
则可以想到cmd.bat执行起来后,会连续的执行第一行指令。
注1:程序中的pause可以不加入,加入只是为了让人选择是否再执行一次该指令。
注2:该程序的奥妙就是最后以cmd结尾,或者其他和该bat文件相同名称的指令。
2、实际运行程序后,可以看到第一指令执行后,到了pause环节,
我们可以轻触键盘,将程序再执行一次。
也可以鼠标直接关闭dos窗口不进行继续执行。