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
:loopdefine un GOTOpunto
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 /aalgunas 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%-1línea reducirá el valor de loopCount en uno cada vez que se ejecute el bucle. La if %loopCount%==0 GOTO:EOFlí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 FORbucle con el /linterruptor, pero he tenido problemas con esto cuando uso bucles anidados, por lo que generalmente me limito a la GOTOopció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 /lcomando:
- 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.