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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   помогите довести до ума батник (ping + for + goto?) (http://forum.oszone.net/showthread.php?t=324883)

rewqazt 15-03-2017 19:06 2719761

помогите довести до ума батник (ping + for + goto?)
 
задача - проверить по пингу ip и если пинги есть, то выполнить несколько команд по установке софта.

сейчас код выглядит так

for /l %%i in (1,1,254) do (
echo 192.168.0.%%i
copy file1.exe \\192.168.0.%%i\c$\Windows
PsExec.exe \\192.168.0.%%i "file1.exe" -server 123.123.123.123"
del \\192.168.0.%%i\c$\Windows\file1.exe
)
pause

работает но медленно.

Хочу вставить проверку по пингу и если пинг есть запустить в отдельном потоке выполнение данных команд. Если пинга нет то перейти к началу цикла.

пробовал конструкцию наподобие PING 192.168.0.%%i |find "TTL=" || goto pingFalse с вызовом подпрограммы но ничего не получается.

megaloman 15-03-2017 21:16 2719797

Код:

@Echo Off
cls

Set "Network=192.168.0"

FOR /L %%p IN (1,1,254) DO Call :Job "%Network%.%%p"

GoTo :Eof

:Job
        FOR /F "usebackq tokens=1,2,3 skip=2 delims==" %%i IN (`ping %~1 -4 -n 1`) DO (
                If "%%k"=="" (
                        Echo --- %1 Недоступен
                        GoTo :Eof
                ) Else (
                        Echo +++ %~1
                        Echo ++++++++++++++  Далее делаем что нам нужно
                        GoTo :Eof
                )
        )
GoTo :Eof


rewqazt 17-03-2017 11:58 2720308

Благодарю

rewqazt 17-03-2017 12:49 2720340

В продолжение. Как теперь вызвать в другом батнике команды именно для этого ip? т.е. start и в аргументах передать %Network%.%%p

Echo ++++++++++++++ Далее делаем что нам нужно

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

Iska 17-03-2017 13:22 2720351

rewqazt, start-то Вы сделаете, а вот вернуться и сделать что-то по результатам — уже нет. Тут нужен WSH/PoSH.

rewqazt 17-03-2017 14:11 2720363

Спасибо.


Время: 08:38.

Время: 08:38.
© OSzone.net 2001-