
Quiero encontrar una manera de utilizar el símbolo del sistema para cerrar un programa en digamos... 60 segundos. Similar al apagado programado de la computadora (shutdown /s /t ) y la tarea.
¿Algunas ideas? es posible?
Respuesta1
¿Cómo puedo cerrar un programa en digamos... 60 segundos?
Puede utilizar ping
o timeout
para producir un retraso de tiempo.
timeout
no está disponible en Windows XP.timeout
te da una cuenta regresiva.
ping
solución
Para matar notepad
después de 60 segundos usa el siguiente comando:
ping 127.0.0.1 -n 61 > nul && taskkill /im notepad.exe
Nota:
- Necesita 61 pings ya que hay un retraso de 1 s entre
ping
s.
Ejemplo:
F:\test>time /t && ping 127.0.0.1 -n 61 > nul && taskkill /im notepad.exe && time /t
17:56
SUCCESS: Sent termination signal to the process "notepad.exe" with PID 8084.
17:57
También se puede producir un retraso mediante el comando PING con una dirección loopback, hay un retraso de 1 segundo entre cada ping consecutivo. En las pruebas, PING consume menos tiempo de procesador que Sleep.exe o Timeout.exe, esto permite que otros procesos se ejecuten en segundo plano. El comando PING sólo se puede interrumpir con Ctrl-C. Fuente: Clay Calvert (usenet 2001).
por ejemplo, para un retraso de 40 segundos:
PING -n 41 127.0.0.1>nulo
Fuentese acabó el tiempo
timeout
solución
Para matar notepad
después de 60 segundos usa el siguiente comando:
timeout /t 60 && taskkill /im notepad.exe
Notas:
timeout
no está disponible en Windows XP.timeout
está mal implementado. Si realiza un "tiempo de espera 1", esperará hasta el "siguiente segundo", lo que podría ocurrir en 0,1 segundos. Intente realizar el "tiempo de espera 1" varias veces y observe la diferencia en el retraso. Durante 5 segundos o más, puede que no sea gran cosa, pero con un retraso de 1 segundo funciona mal.
Ejemplo:
F:\test>time /t && timeout /t 60 && taskkill /im notepad.exe && time /t
18:07
Waiting for 0 seconds, press a key to continue ...
SUCCESS: Sent termination signal to the process "notepad.exe" with PID 5412.
18:08
Otras lecturas
- Un índice AZ de la línea de comando CMD de Windows- Una excelente referencia para todo lo relacionado con la línea cmd de Windows.
- se acabó el tiempo- Retrasar la ejecución durante unos segundos o minutos, para usar dentro de un archivo por lotes.
- silbido- Pruebe una conexión de red; si tiene éxito, el ping devuelve la dirección IP.
- ¿Cómo dormir durante 5 segundos en el símbolo del sistema de Windows? (o DOS)
Respuesta2
Intenta usarProgramador de tareas.
- Configure el registro de eventos para que se genere un evento cuando se inicie el programa deseado.
- Configure una tarea programada para que se ejecute cuando se registre el evento particular del n.° 1. En la tarea programada, se puede establecer un retraso (60 segundos en su caso) y se puede ejecutar cualquier comando/script.
Respuesta3
Pruebe mi ejemplo:
choice /t 5 /d a /c ab /n >nul & taskkill /im URprocess.exe
Explicación: "elección" espera 5 segundos y sale, luego taskkill cierra "URprocess"
Respuesta4
Utilizo scriptrunner.exe suministrado con Windows 10. Tuve que buscar el mío, no estaba en la ruta. Puede encontrar documentación enhttps://ss64.com/nt/scriptrunner.html
A menudo convierto un montón de libros electrónicos a epub, pero la conversión a menudo se queda a medio camino. Entonces hice un lote con el siguiente contenido.
@echo off
for /F "delims=" %%a in (files.txt) do (
if not exist "%%a.epub" ScriptRunner.exe -appvscript "c:\Program Files (x86)\calibre2\ebook-convert.exe" "%%a" "%%a.epub" -appvscriptrunnerparameters -timeout=60
if exist "%%a.epub" del "%%a"
)
Files.txt contiene todos los archivos con rutas que deben convertirse. Utilizo ebook-convert.exe de calibre para realizar la conversión. El argumento -timeout=60 es el tiempo en segundos (aquí 60) después del cual se detiene la ejecución, si la conversión está lista antes, se ejecuta la siguiente línea.
Todo esto funciona bien.