Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Определить компьютер в сети, до которого самый длинный маршрут

Ответить
Настройки темы
CMD/BAT - Определить компьютер в сети, до которого самый длинный маршрут

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: namsma
Дата: 27-02-2017
Как вывести максимальное значение метрики(последняя колонка из вывода команды route print)?
Файл - .bat.

То eсть нужно опрeдeлить компьютeр в сeти, до которого самый длинный маршрут.
Буду благодарен за помощь. Если кто-то осилит, буду очень признателен.

Скрин

Отправлено: 00:23, 24-02-2017

 

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


изменил условия на более понятные

Отправлено: 15:14, 27-02-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


namsma, для каких сетевых адресов? Вы показали скриншот. Что по этому скриншоту должно быть в ответе?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 19:11, 27-02-2017 | #3


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


megaloman, если моя быть понимать правильно нужно найти максимальное значение метрики из вывода route print и вывести строки, у которых метрика будет равна этому значению.
в ответе должен получится вывод, судя по скриншоту, соответсвующий чему-то вот такому:
Код: Выделить весь код
route print | findstr 306$
но это в том случае, если максимальное значение метрики 306. namsma, я так понимаю проблема именно определить какое значение является максимальным, нет?

Отправлено: 12:07, 28-02-2017 | #4


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


так?
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
for /f "tokens=4,5" %%a in ('route print^|findstr /rc:" [0-9]*$"') do if !max! lss %%b set max=%%b& set "comp=%%a"
echo Максимальное число метрики: %max% для %comp%
pause>nul

Последний раз редактировалось alpap, 28-02-2017 в 16:53. Причина: укоротил немного


Отправлено: 16:28, 28-02-2017 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Может быть, будет проще сюда sort.exe привязать?

Отправлено: 19:19, 28-02-2017 | #6


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Iska, ИМХО, Наверное лучше. Но еще надо отсеять ненужные значения. По моему, сетевой адрес 255.255.255.255 не интересен. Не хватает данных для решения. ИМХО, надо искать не только максимальную метрику, но и отсеивать ненужные значения, плюс не ясно: что делать, когда максимальные метрики встречаются несколько раз.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 20:54, 28-02-2017 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Не хватает данных для решения. »
Соглашусь. Именно так.

Отправлено: 21:01, 28-02-2017 | #8


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить 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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Определить компьютер в сети, до которого самый длинный маршрут

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход