CMD/BAT - [решено] Помогите с написанием скрипта. Ping нескольких серверов.

Ответить
Аватара пользователя
jellypop

CMD/BAT - [решено] Помогите с написанием скрипта. Ping нескольких серверов.

Сообщение jellypop »

привет всем.



помогите, пожалуйста, с написанием скрипта. сам в этом полный ноль.

смысл скрипта:

есть несколько серверов (IP + название сервера, не домен, а просто рандомное название, которое будет задаваться в самом коде скрипта). так вот. нужно, чтобы этот скрипт пинговал все серверы и выдавал название того, у которого значение средний пинг имеет лучшие показатели (мс.).



например есть три сервера:

127.0.0.1 - Computer1

127.0.0.2 - Computer2

127.0.0.3 - Computer3



запускаешь скрипт, он пингует все серверы и выдает, например, Computer2 (потому что средний пинг у него был лучше всех)



если что-то не понятно, постараюсь дополнить. спасибо огромное заранее.
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Помогите с написанием скрипта. Ping нескольких серверов.

Сообщение Foreigner »

jellypop,



Код:

Код: Выделить всё

@echo off
setlocal
set "ip_94.100.191.202=mail.ru"
set "ip_87.250.250.11=yandex.ru"
set "ip_173.194.71.94=google.ru"
for /f "tokens=2,3 delims=_=" %%i in (' set ip_ ') do (
    for /f "tokens=4 delims==" %%k in (' ping %%i ^| findstr /v ":" ^| findstr "=" ') do call:1 %%j %%k
)
for /f "tokens=2 delims==" %%i in (' set ping_ ^| sort /r ') do set "site=%%i"
echo %site%
goto:eof
:1
set "num="
if not "%2"=="" set "num=000%2"
if defined num set "ping_%num:~-3%=%1"
Аватара пользователя
jellypop

Re: CMD/BAT - [решено] Помогите с написанием скрипта. Ping нескольких серверов.

Сообщение jellypop »

спасибо огромное, работает.

а как-нибудь переделать так, чтобы выводилось сразу 5 компьютеров по порядку (по результату того-же самого среднего пинга) и отображался средний пинг для каждого.

например

1. yandex.ru - 10 ms.

2. mail.ru - 30 ms.

3. google.ru - 50 ms.



и т.п.

спасибо заранее еще раз!
Аватара пользователя
jellypop

Re: CMD/BAT - [решено] Помогите с написанием скрипта. Ping нескольких серверов.

Сообщение jellypop »

jellypop, можно, но компьютер, где превышен интервал ожидания отображаться не будет. Только доступные:



Код:

Код: Выделить всё

....
for /f "tokens=2,3 delims=_=" %%i in (' set ping_ ^| sort /r ') do echo %%j - %%i ms
goto:eof
:1
...

Будет с лидирующем нулем. Убрать?


Цитата:



google.ru - 039 ms

yandex.ru - 005 ms

mail.ru - 003 ms
Аватара пользователя
jellypop

Re: CMD/BAT - [решено] Помогите с написанием скрипта. Ping нескольких серверов.

Сообщение jellypop »

во. спасибо! пускай будет ноль, не мешает. qiwi-кошелек, яд деньги в ЛС! за работу полагается копейка)
Ответить

Вернуться в «Скриптовые языки администрирования Windows»