IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   условие на проверку связи с удалённой машиной (http://www.imho.ws/showthread.php?t=124320)

nyb 04.10.2007 06:24

условие на проверку связи с удалённой машиной
 
Подскажите как реализовать следующее:

Имеется файл, к примеру, xxx.bat с определённым набором команд, которые нужно запустить на удалённых машинах локальной сети. Требуется посредством команд пакетных программ ввести условие на проверку связи с удалённой машиной (в сети ли она в данный момент или нет). Если да, то идёт запуск скрипта.

Думаю, можно произвести данную операцию через ping, но вот как - загвоздка?

Borland 04.10.2007 11:08

Код:

ping -n 1 <здесь подставляется переменная с именем либо IP машины>
if ERRORLEVEL 1 goto SKIP_MACHINE
REM здесь добавляются команды, выполняемые для работающей машины
REM (или вызов соответствующего скрипта)
:SKIP_MACHINE


nyb 05.10.2007 03:50

можно ли посредством пакетного программирования работать с переменной таким образом, как в обычных языках.

К примеру, ip:=1 (знак присваивания)

Вроде бы переменная описывается как %ip, но не хочет программа её воспринять!
Если быть конкретнее, можно ли реализовать следуюющее:

скажем, имеем ip адрес 192.168.0.1, нужно пропинговать следующте 50 адресов (192.168.0.2, 192.168.0.3 ...). Если ping проходит, то выполняются соответствующие команды. Если нет, то переходим на следующий ip?

Borland 05.10.2007 10:36

nyb, в .cmd-скриптах значение переменной устанавливается командой SET. Подробнее - SET /? в консоли.
Для последовательного перебора IP (или любых других цифровых значений) удобнее воспользоваться конструкцией FOR /L. Например,
Код:

FOR /L %%N IN (2,1,254) DO CALL 1.cmd 192.168.0.%%N
последовательно запустит 253 раза на выполнение файл 1.cmd, передавая ему в качестве параметра IP в диапазоне 192.168.0.2-192.168.0.254. Подробнее - FOR /? в консоли.


Часовой пояс GMT +4, время: 02:58.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.