я проверил с моей замазкой и в случае отказа не будет поддерживать какую-либо связь, так что вы просто не увидите это на "netstat ", и если вы не найдете его в этом выводе, это означает, что соединение либо завершилось неудачно, либо просто завершено. Таким образом, я понял, что вы могли бы сделать что-то подобное на вашем глушения партии:
timeout 20
SET tempfl=c:\windows\temp\netstatresult.txt
netstat -aonb>%tempfl%
for /f "delims=" %i in ('findstr /i /C:putty %tempfl%') do SET output=%i
if NOT DEFINED %output% taskkill /f /im putty.exe
del %tempfl%
Так что пишет вывод NETSTAT на временный файл, после этого мы проверяем, если на выходе ввода команды содержит подстроку замазку, используя findstr. Если findstr имеет какие-либо результаты переменная выход задан со значением, иначе он не будет определен, поэтому, если есть значение, это означает, что замазка работает успешно, и вам не нужно ее убивать, и если разве вы не можете убить процесс замазки.
После этого существует простое, если выполняется taskkill, если переменная не определена, а затем созданный файл temp удален.
Только убедившись, что если вы не знаете, что NetStat используется для: https://commandwindows.com/netstat.htm
Так в основном вы хотите проверить Wheter шпатлевка runns правильно или нет, не так ли? И если вы видите, что он застрял, вы хотите убить пакетный файл, который иначе убил бы процесс замазки? Я бы предложил: Запустите putty из ** командной строки **, как и в случае с вашим первым пакетным файлом (-> только в нижней строке). Если шпатлевка действует правильно и выполняется все, что она делает, наберите 'echo% ERRORLEVEL %' и нажмите [Enter]. Если значение отличается от 0, я думаю, что могу помочь. Это будет мой путь, хотя ... – geisterfurz007