Utilizando GOTO
Pruebe el siguiente lote:
@echo off
set loopCount=50
:loop
start "C:\Program Files\Mozilla Firefox\firefox.exe" "http://testmywebsiteloadspeed.com"
set /a loopCount=%loopCount%-1
if %loopCount%==0 GOTO:EOF
timeout /t 60
taskkill /im firefox.exe
timeout /t 5
GOTO :loop
:loop
define un GOTO
punto
timeout /t 60
espera 60 segundos
taskkill /im firefox.exe
matará el proceso de Firefox
GOTO :loop
volverá a enrutar al comienzo del guión.
Nota: Esto eliminará todos los procesos en ejecución de Firefox. Creo que Firefox generalmente solo permite uno a la vez de todos modos.
Bucle finito utilizando GOTO
Para hacer esto para un número específico de iteraciones, puede usar set /a
algunas matemáticas en una variable loopCount.
@echo off
set loopCount=50
:loop
start "C:\Program Files\Mozilla Firefox\firefox.exe" "http://testmywebsiteloadspeed.com"
set /a loopCount=%loopCount%-1
if %loopCount%==0 GOTO:EOF
timeout /t 60
taskkill /im firefox.exe
timeout /t 5
GOTO :loop
La set /a loopCount=%loopCount%-1
línea reducirá el valor de loopCount en uno cada vez que se ejecute el bucle. La if %loopCount%==0 GOTO:EOF
línea saldrá del script cuando llegue a 0.
GOTO:EOF
significa "ir al final del archivo", que omitirá cualquier otro código en el archivo.
Utilizando FOR /l
Una solución alternativa sería usar un FOR
bucle con el /l
interruptor, pero he tenido problemas con esto cuando uso bucles anidados, por lo que generalmente me limito a la GOTO
opción de archivos Batch simples como este. Aún así, espero que esto ayude a alguien en el futuro.
@echo off
for /l %%x in (1, 1, 50) do (
start "C:\Program Files\Mozilla Firefox\firefox.exe" "http://testmywebsiteloadspeed.com"
set /a loopCount=%loopCount%-1
if %loopCount%==0 GOTO:EOF
timeout /t 60
taskkill /im firefox.exe
timeout /t 5
)
Para desglosar el FOR /l
comando:
- El primer argumento es donde comienzas.
- El segundo argumento es qué gran paso dar. (Esto no es relevante para su ejemplo particular ya que no utiliza el valor en absoluto).
- El tercer argumento es cuándo parar.