Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Помогите с написанием скрипта. Ping нескольких серверов. (http://forum.oszone.net/showthread.php?t=230666)

jellypop 18-03-2012 16:58 1881817

Помогите с написанием скрипта. Ping нескольких серверов.
 
привет всем.

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

например есть три сервера:
127.0.0.1 - Computer1
127.0.0.2 - Computer2
127.0.0.3 - Computer3

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

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

Foreigner 18-03-2012 19:00 1881884

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 18-03-2012 19:38 1881902

спасибо огромное, работает.
а как-нибудь переделать так, чтобы выводилось сразу 5 компьютеров по порядку (по результату того-же самого среднего пинга) и отображался средний пинг для каждого.
например
1. yandex.ru - 10 ms.
2. mail.ru - 30 ms.
3. google.ru - 50 ms.

и т.п.
спасибо заранее еще раз!

Foreigner 18-03-2012 20:08 1881932

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 18-03-2012 21:02 1881964

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


Время: 15:07.

Время: 15:07.
© OSzone.net 2001-