Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - помогите довести до ума батник (ping + for + goto?)

Ответить
Настройки темы
CMD/BAT - помогите довести до ума батник (ping + for + goto?)

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


задача - проверить по пингу 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 с вызовом подпрограммы но ничего не получается.

Отправлено: 19:06, 15-03-2017

 

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:16, 15-03-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Благодарю

Отправлено: 11:58, 17-03-2017 | #3


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

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

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

Отправлено: 12:49, 17-03-2017 | #4


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


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

Отправлено: 13:22, 17-03-2017 | #5


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо.

Отправлено: 14:11, 17-03-2017 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - помогите довести до ума батник (ping + for + goto?)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - Как довести до конца установку обновлений при накрывшейся системе виндовс 7 64бит? torion Microsoft Windows 7 9 08-09-2015 22:59
C/C++ - Пожалуйста помогите довести до ума этот код....javascript:Sham_ins('%20:help:%20') DFG111 Программирование и базы данных 1 07-06-2013 21:02
Интерфейс - Доведение до ума. Haomand Microsoft Windows 7 1 21-08-2011 12:01
Прочее - Помогите чайнику!!! интернет довести до ума QUPA Сетевое оборудование 15 14-12-2010 16:52
Помогите довести до ума TraficInspector Leot Сетевые технологии 1 11-04-2007 17:31




 
Переход