По сути, я хочу написать сценарий, который может помочь перезапустить программу, если она станет «не отвечает». Затем я хочу записать это в простой текстовый файл со временем, чтобы я мог позже проверить, как часто необходимо перезапускать, но как мне правильно проверить статус и сохранить его в переменной, чтобы сценарий затем решил, перезапускать ли или игнорировать его (иначе он либо не работает, либо работает нормально)?
Я обнаружил, что могу сделать что-то вроде .....
taskkill /im "myProgram.exe" /fi "STATUS eq NOT RESPONDING" /f >nul && start "" "C:\Program Files (x86)\myProgram\myProgram.exe"
, которое я получил от Пакетный файл для уничтожения и перезапуска не отвечающей программы
Это здорово, но когда я добавляю что-то для записи в журнал, я обнаруживаю, что он все равно записывает в журнал. чем только при статусе «не отвечает». Кроме того, он не дает мне большой гибкости для обработки его в операторе if / else, если я хочу сделать с ним что-то еще.
Это то, что я пробовал с добавленным битом ....
taskkill /im "myProgram.exe" /fi "STATUS eq NOT RESPONDING" /f >nul && SET message=%time% %date% - myProgram is was not running so restarted it && ECHO %message% >> myProgram_restart_LOG.txt && START "" "C:\Program Files (x86)\myProgram\myProgram.exe"
(я догадывался, что &&
не является условием успешного выполнения предыдущего оператора в цепочке, но все равно выполняется независимо?)