Cita de: Eleкtro en 15 Junio 2016, 00:43 AM
Esto no va así, el comando TaskKill no expone ningún parámetro para poder especificar un tiempo de retraso o delay.
Debes hacer lo contrario, primero esperar, y cuando llegue el momento adecuado, ejecutar la orden. Puedes hacerlo con un búcle "infinito", de la siguiente manera:Código (dos) [Seleccionar]@Echo Off & SetLocal EnableDelayedExpansion
Title TaskKill with countdown
Set "ProcessName=Notepad"
Set "TargetTime=02:00" :: 2 AM.
For /L %%# In (0, 1, 99999999999) Do (
Set /A "CurrentHour=!TIME:~0,2!"
Set /A "CurrentMins=!TIME:~3,2!"
Set /A "TargetHour=%TargetTime:~0,2%"
Set /A "TargetMins=%TargetTime:~3,2%"
If !CurrentHour! EQU !TargetHour! If !CurrentMins! EQU !TargetMins! (
Call :KillProcess "%ProcessName%"
)
(TimeOut /T 10 /NoBreak)1>NUL
)
:KillProcess :: %1=ProcessName
(TakKill.exe /F /T /IM "%~1")2>NUL && (
Echo Process "%~1" killed successfully.
) || (
Echo Failed to kill process: "%~1".
)
GoTo :End
:End
Pause&Exit /B 0
Saludos.
Excelente! Que grande! +1
Saludos