|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Определить компьютер в сети, до которого самый длинный маршрут |
|
CMD/BAT - Определить компьютер в сети, до которого самый длинный маршрут
|
Новый участник Сообщения: 4 |
Профиль | Отправить PM | Цитировать
Как вывести максимальное значение метрики(последняя колонка из вывода команды route print)?
Файл - .bat. То eсть нужно опрeдeлить компьютeр в сeти, до которого самый длинный маршрут. Буду благодарен за помощь. Если кто-то осилит, буду очень признателен. Скрин |
|
Отправлено: 00:23, 24-02-2017 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать изменил условия на более понятные
|
Отправлено: 15:14, 27-02-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать namsma, для каких сетевых адресов? Вы показали скриншот. Что по этому скриншоту должно быть в ответе?
|
------- Отправлено: 19:11, 27-02-2017 | #3 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать megaloman, если моя быть понимать правильно нужно найти максимальное значение метрики из вывода route print и вывести строки, у которых метрика будет равна этому значению.
в ответе должен получится вывод, судя по скриншоту, соответсвующий чему-то вот такому: но это в том случае, если максимальное значение метрики 306. namsma, я так понимаю проблема именно определить какое значение является максимальным, нет? |
Отправлено: 12:07, 28-02-2017 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
|
Последний раз редактировалось alpap, 28-02-2017 в 16:53. Причина: укоротил немного Отправлено: 16:28, 28-02-2017 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Может быть, будет проще сюда sort.exe привязать?
|
Отправлено: 19:19, 28-02-2017 | #6 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Iska, ИМХО, Наверное лучше. Но еще надо отсеять ненужные значения. По моему, сетевой адрес 255.255.255.255 не интересен. Не хватает данных для решения. ИМХО, надо искать не только максимальную метрику, но и отсеивать ненужные значения, плюс не ясно: что делать, когда максимальные метрики встречаются несколько раз.
|
------- Отправлено: 20:54, 28-02-2017 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 21:01, 28-02-2017 | #8 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Нарисовал корявый пример: отсортировал маршруты по убыванию метрик. Могу (пока не хочу) отсечь все значения меньше максимального, но после этого не знаю, что дальше делать.
@Echo Off cls chcp 437 >nul SetLocal EnableExtensions EnableDelayedExpansion Call :InSort "%~dpnx0.txt" Echo Network Destination Netmask Gateway Interface Metric For /F "usebackq tokens=1,2,3,4,5,6 delims= " %%i In (`More "%~dpnx0.txt"^|Sort /R`) Do ( Set "SS= %%j" &Set "S=!SS:~-17!" Set "SS= %%k" &Set "S=!S!!SS:~-17!" Set "SS= %%l" &Set "S=!S!!SS:~-17!" Set "SS= %%m" &Set "S=!S!!SS:~-17!" Set "SS= %%n" &Set "S=!S!!SS:~-7!" Echo !S! ) Del "%~dpnx0.txt" pause goto :Eof :InSort >%1 ( Set /A Log=0 For /F "usebackq tokens=1,2,3,4,5,6 delims= " %%i IN (`route print -4`) DO ( If "%%j"=="" Set /A Log=0 If Not !Log! EQU 0 ( Set /a MM=10000+%%m Echo !MM! %%i %%j %%k %%l %%m %%n ) If "%%n"=="Metric" Set /A Log=1 ) ) goto :Eof Вот все маршруты, соответствующие максимальной метрике.
@Echo Off cls chcp 437 >nul SetLocal EnableExtensions EnableDelayedExpansion Set /A Max=-1 Call :OutPrint "Max" Echo Network Destination Netmask Gateway Interface Max Metric Call :OutPrint "Max" Pause GoTo :Eof :OutPrint Set /A LMax=!%~1! Set /A Log=0 For /F "usebackq tokens=1,2,3,4,5,6 delims= " %%i IN (`route print -4`) DO ( If "%%j"=="" Set /A Log=0 If Not !Log! EQU 0 ( If %LMax% LSS 0 ( If !%~1! LSS %%m Set /A %~1=%%m ) Else ( If %%m GEQ !%~1! ( Set "SS= %%i" &Set "S=!SS:~-17!" Set "SS= %%j" &Set "S=!S!!SS:~-17!" Set "SS= %%k" &Set "S=!S!!SS:~-17!" Set "SS= %%l" &Set "S=!S!!SS:~-17!" Set "SS= %%m" &Set "S=!S!!SS:~-11!" Echo !S! ) ) ) If "%%n"=="Metric" Set /A Log=1 ) goto :Eof |
------- Последний раз редактировалось megaloman, 28-02-2017 в 23:55. Отправлено: 22:41, 28-02-2017 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VPN - При переподключении vpn-клиента на сервере отваливается маршрут до сети клиента. | Wazza | Сетевые технологии | 11 | 13-02-2016 20:47 | |
Как правильно проложить маршрут 1 до 3 компа? | Shanks | Хочу все знать | 2 | 18-12-2012 18:51 | |
[решено] Определить серийный номер устройства с которого запущен скрипт. | Centrinar | AutoIt | 8 | 10-04-2011 14:27 | |
Как определить окно, у которого нет Title, Control's и собственного процесса | Baldr_log | AutoIt | 2 | 25-08-2009 18:26 | |
Как загрузить из сети ком у которого в биосе нет загрузки из сети ? | mitiya | Автоматическая установка Windows 2000/XP/2003 | 8 | 18-01-2007 21:59 |
|