Любой сисадмин рано или поздно сталкивается с ситуацией, когда юзер, который обращается с жалобами на проблемы, весьма далек от технических нюансов (классическая ситуация – какая-то блондинка, максимально подробное описание проблемы у которой сводится к "инет не работает"). Вот для таких случаев может пригодится нижеприведенный сценарий, результат работы которого юзер каким-то образом должен передать админу.
set cur_time=%time:~0,8% set cur_date=%date% set f=result.txt set TMP=defgate.rsl set STEPS=8 echo Please wait a few minutes. Diagnostics in progess... echo %cur_time% %cur_date% >> %f% ipconfig /all >> %f% echo Step 1 of %STEPS% completed. tracert -d 195.214.195.105 >> %f% echo Step 2 of %STEPS% completed. tracert -d -h 7 avz.org.ua >> %f% echo Step 3 of %STEPS% completed. tracert -d -h 7 mail.ru >> %f% echo Step 4 of %STEPS% completed. route print >> %f% echo Step 5 of %STEPS% completed. netstat -b >> %f% echo Step 6 of %STEPS% completed. netsh diag show ieproxy >> %f% echo Step 7 of %STEPS% completed. netsh diag show gateway > %TMP% FOR /F "skip=3 tokens=3" %%I IN (%TMP%) DO ( ping -n 50 %%I >> %f% route print %%I >> %f% goto END ) :END erase %TMP% echo Diagnostics complete. Please, send the file %f% to support team.
Особенно заслуживает внимания конструкция
FOR /F "skip=3 tokens=3" %%I IN (%TMP%)
которая представляет собой некоторый аналог связки команд tail и awk (или cut) в Unix-системах. Ключ skip=3 означает, что в файле %TMP% будет пропущено первые 3 строки, а tokens=3, означает, что в параметр цикла %%I будет подставлена 3-яя по счету подстрока в 4-ой строке файла (подстроки по умолчанию разделяются пробелами). Так что даже не имея под рукой любимого bash-а, в Windows можно как-то выкрутиться, всего-то почитав хелп "for /?" :)
впечатляет :)
Лично я обломался ковыряться с командным интерпретатором, когда понял, что JScript и VBScript намного мощнее. А теперь еще и PowerShell есть. Например, в JScript можно этот вывод сохранить в какой-то файл, который потом переслать электронной почтой через ActiveX компонент Аутлука Экспресс. Не надо пугаться слова ActiveX, это очень просто, буквально несколько строк.
На компы таких "блондинок" ставлю UltraVNC, ибо подругому с ними уже устал. :) Делаю все не уходя со своего места.