Я пытаюсь определить максимальную скорость пинга из числа серверов в сети.Количество серверов может достигать пары десятков.У меня есть сценарий, как показано ниже, который будет сортировать по нескольким в данный момент, и он работает хорошо, но я ищу более элегантный способ сделать это.Список серверов также может быть сохранен в текстовом файле.На самом деле текстовый файл для имен серверов может быть проще в обслуживании, так как они могут меняться со временем.
РЕДАКТИРОВАТЬ: Этот сценарий также не обрабатывает, если сервер отключен, поэтому я мог случайно оказаться в автономном режиме серверав списке самых быстрых пингов.
SET SERVER_A=MEDUBNA2
SET SERVER_B=HANSECAD2
SET SERVER_C=MEINWESSFS01
SET SERVER_D=MEAUHWC01
for /f "tokens=2 delims==," %%a in ('ping %SERVER_A% -n 1 -w 1000') do SET MINSERVER_A=%%a
for /f "tokens=2 delims==," %%b in ('ping %SERVER_B% -n 1 -w 1000') do SET MINSERVER_B=%%b
for /f "tokens=2 delims==," %%c in ('ping %SERVER_C% -n 1 -w 1000') do SET MINSERVER_C=%%c
for /f "tokens=2 delims==," %%d in ('ping %SERVER_D% -n 1 -w 1000') do SET MINSERVER_D=%%d
SET MINSERVER_A=%MINSERVER_A:~0,-2%
SET MINSERVER_B=%MINSERVER_B:~0,-2%
SET MINSERVER_C=%MINSERVER_C:~0,-2%
SET MINSERVER_D=%MINSERVER_D:~0,-2%
if %MINSERVER_A% lss %MINSERVER_B% (
SET FASTESTSERVERGROUP1=%SERVER_A%
) else (
SET FASTESTSERVERGROUP1=%SERVER_B%
)
if %MINSERVER_C% lss %MINSERVER_D% (
SET FASTESTSERVERGROUP2=%SERVER_C%
) else (
SET FASTESTSERVERGROUP2=%SERVER_D%
)
if %FASTESTSERVERGROUP1% lss %FASTESTSERVERGROUP2% (
SET FASTESTSERVEROVERALL=%FASTESTSERVERGROUP1%
) else (
SET FASTESTSERVEROVERALL=%FASTESTSERVERGROUP2%
)
echo %SERVER_A%: %MINSERVER_A%
echo %SERVER_B%: %MINSERVER_B%
echo %SERVER_C%: %MINSERVER_C%
echo %SERVER_D%: %MINSERVER_D%
echo Fastest Server Group 1: %FASTESTSERVERGROUP1%
echo Fastest Server Group 2: %FASTESTSERVERGROUP2%
:: Ultimate goal is to determine the fastest server out of the list.
echo Fastest Server Overall: %FASTESTSERVEROVERALL%