Estoy usando Windows 10 Professional. Quiero crear un archivo por lotes:
- que abre el navegador Firefox,
- navega a una página
- cierra el navegador después de un minuto.
- Repita los pasos del 1 al 3.
Descubrí el siguiente código hasta ahora para escribir en mi archivo por lotes:
@echo off
start "C:\Program Files\Mozilla Firefox\firefox.exe" "http://testmywebsiteloadspeed.com"
ping -n 1 -w 60
Pero esto no está haciendo nada. ¿También cómo logro 3 y 4?
windows
windows-10
batch-file
CuriousDev
fuente
fuente

start "" "..."tercera usotaskkill /?cuarta inserción de una:labely unagoto :labelal final.Respuestas:
Utilizando
GOTOPruebe el siguiente lote:
:loopdefine unGOTOpuntotimeout /t 60espera 60 segundostaskkill /im firefox.exematará el proceso de FirefoxGOTO :loopvolverá 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
GOTOPara hacer esto para un número específico de iteraciones, puede usar
set /aalgunas matemáticas en una variable loopCount.La
set /a loopCount=%loopCount%-1línea reducirá el valor de loopCount en uno cada vez que se ejecute el bucle. Laif %loopCount%==0 GOTO:EOFlínea saldrá del script cuando llegue a 0.GOTO:EOFsignifica "ir al final del archivo", que omitirá cualquier otro código en el archivo.Utilizando
FOR /lUna 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 laGOTOopción de archivos Batch simples como este. Aún así, espero que esto ayude a alguien en el futuro.Para desglosar el
FOR /lcomando:fuente
/finterruptor de taskkill y agregar un segundo tiempo de espera. Esto podría permitir que Firefox se cierre más naturalmente. Hay más información aquí . He actualizado la respuesta en consecuencia.tasklist | findStr /i firefox.exey luegoif %errorlevel% neq 0 (taskkill /im firefox.exe)o algo de esa naturaleza si ve surgir problemas en el futuro. Probablemente debería ir a otra etiqueta y seguir comprobando que firefox.exe se elimina de la memoria; de lo contrario, continúe eliminándolo antes de comenzar otra instancia.