@echo off
if "%1" == "h" goto 123
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:123
echo n|start /WAIT cmd.exe
goto 123
你要的效果实现起来不太优雅。前面三行是关闭回显并隐藏bat窗口(别处找的),后面三行是不断执行cmd.exe、但是要等待前一个退出后再执行下一个。
除此之外,关键那一行前面加了个echo n|,目的是把符号n作为作为输入重定向到后面的的start /WAIT cmd.exe里去——因为我在试的时候发现只循环start /WAIT cmd.exe的话每次退出后会提示键盘输入“是否终止执行(Y\N)”,重定向输入后就会自动每次输入n然后继续执行。