Usando GOTO
Tente o seguinte 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 umGOTO
point. -
timeout /t 60
espera por 60 segundos -
taskkill /im firefox.exe
vai matar o processo do Firefox -
GOTO :loop
será redirecionado de volta para o início do script.
Nota: Isso eliminará todos os processos do Firefox em execução. Eu acho que o Firefox geralmente só permite um de cada vez.
Loop finito usando GOTO
Para fazer isso para um número específico de iterações, você pode usar set /a
para fazer alguma matemática em uma variável 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
A linha set /a loopCount=%loopCount%-1
reduzirá o valor de loopCount por um a cada vez que o loop for executado. A linha if %loopCount%==0 GOTO:EOF
sairá do script quando atingir 0.
GOTO:EOF
significa "ir para o final do arquivo", o que irá ignorar qualquer outro código no arquivo.
Usando FOR /l
Uma solução alternativa seria usar um loop FOR
com a opção /l
, mas tive problemas com isso ao usar loops aninhados, então, geralmente, fico com a opção GOTO
de arquivos Batch simples, como isto. Ainda assim, espero que isso ajude alguém no 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 dividir o comando FOR /l
:
- O primeiro argumento é onde você começa.
- O segundo argumento é o tamanho de um passo a ser dado. (Isso não é relevante para o seu exemplo específico, já que você não usa o valor.)
- O terceiro argumento é quando parar.