Как создать бесконечный цикл в пакетном файле Windows?
это в основном то, что я хочу в пакетном файле. Я хочу иметь возможность повторно запускать "делать вещи "всякий раз, когда я нажимаю любую клавишу, чтобы пройти мимо"паузы".
while(true){
Do Stuff
Pause
}
похоже, что есть только for петли доступны и нет while циклы в пакетном режиме. Как же тогда создать бесконечный цикл?
6 ответов:
действительно бесконечный цикл, считая от 1 до 10 с шагом 0.
Вам нужно бесконечное или больше приращений, чтобы достичь 10.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Это может быть полезно, если вам нужен действительно бесконечный цикл, так как он намного быстрее, чем
goto :loopверсия, потому что цикл for-loop полностью кэшируется один раз при запуске.
еще один лучший способ сделать это:
:LOOP timeout /T 1 /NOBREAK ::pause or sleep x seconds also valid call myLabel if not ErrorLevel 1 goto :LOOPтаким образом, вы можете позаботиться об ошибках тоже
вот пример использования цикла:
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Это простой пакет, который я использую, когда мне нужно зашифровать любое сообщение в хэш md5 в Windows(требуется openssl), и программа будет лояльно повторяться, за исключением Ctrl+C или пустого ввода.

Comments