• Как в Windows через CMD убить заданный процесс в конкретное время?

    @TirkinTir
    Начало метки loop (справка по команде: goto /?)
    :loop

    Таймаут в 60 секунд в выполнении проверки, иначе процесс выедает неплохо так ЦП (справка по команде: timeout /?)
    timeout /t 60 /nobreak

    Присвоение значения переменной "ttt" текущего времени в виде строки, с небольшим форматированием, а именно: значение переменной "time" по умолчанию выглядит в следующем формате hh:mm:ss,nn к примеру (17:18:19,20), где последние символы доли секунды. Запись %time:~0,-6% выведет вышеуказанный пример в виде 17:18, начиная с нулевого(самого первого) символа и отбросив шесть последних, ну или %time:~0,5% - начинаем с нулевого и показываем только первые пять, результат будет тот же - 17:18 (справка по команде: set /?)
    call set ttt=%time:~0,-6%

    Условие где строковое значение переменной проверяется со строкой же " 5:00", исходя из вышесказанного "ttt" можно отформатировать и записать в виде %time:~1,4%(начинаем со второго символа и показываем 4 первых), в проверке тогда можно просто написать условные "5:00" без этого неприятного пробела (справка по команде: if /?)
    if "%ttt%"==" 5:00" (goto :time) else (goto :loop)

    Начало метки time (справка по команде: goto /?)
    :time

    Команда останавливающая необходимый процесс prog.exe (справка по команде: taskkill /?)
    taskkill /f /im prog.exe

    Возврат к строке с меткой loop (справка по команде: goto /?)
    goto :loop