How to create an infinite loop in Windows batch file?
这基本上是我想要的批处理文件。 我希望每当我按任意键越过"暂停"时都可以重新运行" Do Stuff"。
1 2 3 4 | while(true){ Do Stuff Pause } |
看起来只有
使用旧的
1 2 3 4 5 | :loop echo Ooops goto loop |
另请参阅此以获得更有用的示例。
一个真正的无限循环,从1到10递增0。
您需要无限或更多的增量才能达到10。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | for /L %%n in (1,0,10) do ( echo do stuff rem ** can't be leaved with a goto (hangs) rem ** can't be stopped with exit /b (hangs) rem ** can be stopped with exit rem ** can be stopped with a syntax error call :stop ) :stop call :__stop 2>nul :__stop () creates a syntax error, quits the batch |
如果您需要一个真正的无限循环,这可能会很有用,因为它比
在
1 | FOR /L %N IN () DO @echo Oops |
读取
并尝试
1 2 3 | :again do it goto again |
另一个更好的方法是:
1 2 3 4 5 | :LOOP timeout /T 1 /NOBREAK ::pause or sleep x seconds also valid call myLabel if not ErrorLevel 1 goto :LOOP |
这样您也可以解决错误
这是使用循环的示例:
1 2 3 4 5 6 7 8 9 10 11 12 | echo off cls :begin set /P M=Input text to encode md5, press ENTER to exit: if %M%==%M1% goto end echo.|set /p ="%M%" | openssl md5 set M1=%M% Goto begin |
这是我需要在Windows上将任何消息加密为md5哈希(需要openssl)时使用的简单批处理,并且该程序会忠实地重复自身,除非提供Ctrl + C或空输入。