start looping loop comando batch loops batch-file infinite-loop

loops - looping - ¿Cómo crear un bucle infinito en el archivo por lotes de Windows?



looping batch file (6)

¿Qué tal si utilizamos un buen (?) Viejo goto ?

:loop echo Ooops goto loop

Ver también this para un ejemplo más útil.

Esto es básicamente lo que quiero en un archivo por lotes. Quiero poder volver a ejecutar "Do Stuff" cada vez que presiono cualquier tecla para pasar la "Pausa".

while(true){ Do Stuff Pause }

Parece que solo hay bucles disponibles y no bucles while en lote. ¿Cómo creo un bucle infinito?


Aquí hay un ejemplo del uso del bucle:

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

Este es el lote simple que uso cuando necesito encriptar cualquier mensaje en md5 hash en Windows (se requiere openssl), y el programa se repetiría fielmente a excepción de Ctrl + C dado o entrada vacía.


Bucle ilimitado en el comando de una línea para usar en las ventanas de cmd :

FOR /L %N IN () DO @echo Oops


Otra forma mejor de hacerlo:

:LOOP timeout /T 1 /NOBREAK ::pause or sleep x seconds also valid call myLabel if not ErrorLevel 1 goto :LOOP

De esta forma también puedes ocuparte de los errores


Un bucle realmente infinito, que cuenta de 1 a 10 con un incremento de 0.
Necesitas incrementos infinitos o más para alcanzar el 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

Esto podría ser útil si necesita un bucle realmente infinito, ya que es mcuh más rápido que una versión goto :loop , ya que for-loop se almacena en caché completamente una vez al inicio.


leer help GOTO

y prueba

:again do it goto again