CMD/BAT - [решено] Как вывести в лог значения из arp -a

Аватара пользователя
root221

Re: CMD/BAT - [решено] Как вывести в лог значения из arp -a

Сообщение root221 »

как сделать ещё конфиг для переменных %LOG% и %ARP%



чтобы настройки переменных хранились в отдельном файле конфигурации например config.cfg





Код:

Код: Выделить всё

LOG=arp.log
ARP=ON
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Как вывести в лог значения из arp -a

Сообщение Foreigner »

root221,

Если формат конфига: одна строчка -- имя_переменной=значение, то просто прочитать из батника:



Код:

Код: Выделить всё

for /f "tokens=*" %%i in (config.cfg) do 1>nul set "%%i"

После этого станут доступны переменные из файла
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Как вывести в лог значения из arp -a

Сообщение Iska »

Код:

Код: Выделить всё

; Мой комментарий 1
LOG=arp.log
; Мой комментарий 2
ARP=ON



Код:

Код: Выделить всё

for /f "tokens=* eol=;" %%i in (config.cfg) do 1>nul set "%%i"
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Как вывести в лог значения из arp -a

Сообщение Foreigner »

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



И вот он:





Код:

Код: Выделить всё

(for /l %%a in (1,1,254) do Echo CreateObject^("WScript.Shell"^).Run "ping -w 100 -n 1 10.0.0.%%a",0
 Echo WScript.Sleep^(3000^))>"%TEMP%\%~n0.vbs"
cscript /Nologo "%TEMP%\%~n0.vbs"
del "%TEMP%\%~n0.vbs"

пример



in (1,1,254) - 254 переписать в переменную и вывести в конфиг чтобы было вот так 10.0.13.254



10.0.13.%%a - ну и вот это, тоже в переменную. (А вот как сделать чтобы вот это число %%a было последним как выделенно в будущем конфиг файле)



например, чтобы я написал в файле конфига 254.254.254.254 и просканировались все 254.254.254.254 компьютеров.



Канечно же, как вы уже догадались, так я сканировать никогда небуду, просто я к тому, чтобы я мог в конфиге мог написать 10.0[/i].13.254



и все компьютеры, c 1 по 254 просканировались, которые находятся в 13 подсети Это число тоже хотелось бы менять произвольно на другой номер подсети.



Как же это можно сделать, чтобы не писать отдельно число 254 в файле скрипта, создавая для него ещё одну переменную, внутри скрипта.



Вот так я бы хотел чтобы выглядел весь конфиг файл:





Код:

Код: Выделить всё

# Файл в котором хрянятся логи  кэша
LOG=file.txt
# Вывод в консоль ON= Только компьютеры, которых в момент проверки небыло в кэше.
# Вывод в консоль OFF= Только компьютеры, которые есть в списке лог файла.
ARP=ON
# Адрес сканирования, ((254) - количество запросов).
10.0.13.254

В данны момент, пока что мозгов хватило только на:





Код:

Код: Выделить всё

# Файл в котором хрянятся логи из таблицы кэша
LOG=file.txt
# Вывод в консоль ON= Только компьютеры, которых в момент проверки небыло в кэше.
# Вывод в консоль OFF= Только компьютеры, которые есть в списке лог файла.
ARP=ON
# Адрес сканирования, ((254) - количество запросов).
IPAddr=10.0.13.
IPNum=254

Foreigner,
Цитата Foreigner:



Да хоть сто одна, все переменные определятся. Если есть комментарии, то прими поправку от Iska.
CMD/BAT - [решено] Как вывести в лог значения из arp -a




Я только начал вникать, если что не так сказал, извини.)



твой скрипт работал, просто ошибки были, когда комментарии оставлял в конфиге, поэтому решил спросить, "а если не одна" Изображение
Аватара пользователя
root221

Re: CMD/BAT - [решено] Как вывести в лог значения из arp -a

Сообщение root221 »

root221,

Подставь те переменные, что указаны в конфиге в батник, например:



Код:

Код: Выделить всё

@echo off
setlocal
for /f "tokens=* eol=#" %%i in (config.cfg) do 1>nul set "%%i"
(for /l %%a in (1,1,%IPNum%) do ... "ping -w 100 -n 1 %IPAddr%%%a ...

ЗЫ. А зачем vbs из батника? Ведь все это можно и без vbs




Цитата:



Я только начал вникать, если что не так сказал, извини.)



За что? Ты спросил я ответил.
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Как вывести в лог значения из arp -a

Сообщение Foreigner »

root221,

Подставь те переменные, что указаны в конфиге в батник, например:



Код:

Код: Выделить всё

@echo off
setlocal
for /f "tokens=* eol=#" %%i in (config.cfg) do 1>nul set "%%i"
(for /l %%a in (1,1,%IPNum%) do ... "ping -w 100 -n 1 %IPAddr%%%a ...

ЗЫ. А зачем vbs из батника? Ведь все это можно и без vbs




Цитата:



Я только начал вникать, если что не так сказал, извини.)



За что? Ты спросил я ответил.
Аватара пользователя
root221

Re: CMD/BAT - [решено] Как вывести в лог значения из arp -a

Сообщение root221 »

Цитата root221:



потому что я просто обновляю арп кеш, т.к через vbs посылается разом 254 запроса а если через cmd то по 1-му каждые 100 милисекунд
»




Единственный плюс для vbs -- не создаются окна. А пинг и в cmd идет одновременно по всем адресам:



Код:

Код: Выделить всё

for %%i in (ya.ru mail.ru google.ru) do start ping -n 11 %%i
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Как вывести в лог значения из arp -a

Сообщение Foreigner »

Цитата Foreigner:



CMD/BAT - [решено] Как вывести в лог значения из arp -a




Про такой приём я знаю, вот только 255 компьютеров вбивать в одну строку, я устану.





Код:

Код: Выделить всё

for /l %%a in (1,1,254) do ping -w 100 -n 1 10.0.0.%%a

255 окон открывается разом а через VBS этого невидно.
Аватара пользователя
root221

Re: CMD/BAT - [решено] Как вывести в лог значения из arp -a

Сообщение root221 »

так что насчёт конфига ? его вобще можно сделать ?



хотябы





Код:

Код: Выделить всё

s=10.0.0.1
po=10.0.0.254
Ответить

Вернуться в «Скриптовые языки администрирования Windows»