Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] определение IP и подключение шары

Ответить
Настройки темы
CMD/BAT - [решено] определение IP и подключение шары

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


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

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


Добрый день!
могу конечно повториться, не успел перечитать весь форум...
помогите составить батник
нужно в зависимости от IP подключать разные сетевые ресурсы (шары)
например определенной группе IP подключить одни сетевые ресурсы (шары)
а всем остальным другие...

заранее благодарен....

Отправлено: 11:05, 28-08-2009

 

Googler


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

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


Цитата Loverman310:
реализовать механизм определения адреса подсети »
как вариант - через маршрут идентификатора примыкающей сети:

Код: Выделить весь код
@Echo Off

For /F "Tokens=2 Delims=={}" %%i In ('WMIC NICCONFIG Where IPEnabled^=TRUE Get IPSubnet /Value') Do Set SubnetMask=%%~i
For /F "Tokens=1" %%i In ('Route Print^|Find "%SubnetMask%"') Do Set SubnetIP=%%i

Echo Subnet Address: %SubnetIP% / %SubnetMask%
Pause >Nul

Отправлено: 10:54, 15-04-2010 | #41



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

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


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


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

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


Спасибо большое за ответ!
Есть небольшая заминка - последний код выдает результат
Код: Выделить весь код
Subnet Address:  /
хотя предыдущие примеры работали отлично. Куда копать?

Отправлено: 12:55, 15-04-2010 | #42


Googler


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

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


Цитата Loverman310:
Куда копать? »
эта CMD-команда должна выдать маску подсети типа: IPSubnet={"255.255.255.0"}
Код: Выделить весь код
WMIC NICCONFIG Where IPEnabled=TRUE Get IPSubnet /Value
следующий батник - присвоить это значение переменной SubnetMask и вывести на экран:
Код: Выделить весь код
@Echo Off

For /F "Tokens=2 Delims=={}" %%i In ('WMIC NICCONFIG Where IPEnabled^=TRUE Get IPSubnet /Value') Do Set SubnetMask=%%~i

Echo %SubnetMask%
Pause >Nul
P.S. проверял на XP/2003

Отправлено: 13:16, 15-04-2010 | #43


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


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

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


Вот, что выдает первая команда:
Код: Выделить весь код
WMIC NICCONFIG Where IPEnabled=TRUE Get IPSubnet /Value


IPSubnet={"255.255.255.128"}


IPSubnet={""}


IPSubnet={""}


IPSubnet={""}
Видимо, одно из пустых значений и записывается в переменную. Причина тому, наличие на машине нескольких сетевых адаптеров, я полагаю.
т.к. результат исполнения(вывода на экран) батника - нулевой.

решил так:
Код: Выделить весь код
@Echo Off

For /F "Tokens=2 Delims=={}" %%i In ('WMIC NICCONFIG Where IPEnabled^=TRUE Get IPSubnet /Value') Do Set SubnetMask=%%~i& GoTo 

Continue

:Continue
For /F "Tokens=1" %%i In ('Route Print^|Find "%SubnetMask%"') Do Set SubnetIP=%%i



Echo Subnet Address: %SubnetIP% / %SubnetMask%
Pause >Nul
т.е. после нахождения первого значения и записи его в переменную - перехожу дальше по тексту программы. Нормальный ли это вариант? Не сулит ли он каких-либо граблей в будущем?

Отправлено: 13:23, 15-04-2010 | #44


Googler


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

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


Loverman310, непустое значение может быть и не первым в списке, может так попробовать?

Код: Выделить весь код
@Echo Off

For /F "Tokens=2 Delims=={}" %%i In ('WMIC NICCONFIG Where IPEnabled^=TRUE Get IPSubnet /Value') Do If Not "%%~i"=="" Set SubnetMask=%%~i

Echo %SubnetMask%
Pause >Nul

Отправлено: 16:16, 15-04-2010 | #45


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


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

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


Спасибо большое! Потестируем в процессе отладки скриптов)

Отправлено: 08:19, 16-04-2010 | #46


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


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

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


Добрый вечер.

Подскажите пожалуйста как в следующем коде, который выдает ip при совпадении требуемой маски, добавить условие ИЛИ чтобы искать еще по одной маске:
Код: Выделить весь код
for /f "tokens=2 delims=:(" %%i in ('ipconfig /all ^| find "IP" ^| find "10.2.16."') do set IPAdress=%%i
В принципе я могу свою задачу решить так:
Код: Выделить весь код
for /f "tokens=2 delims=:(" %%i in ('ipconfig /all ^| find "IP" ^| find "10.2.16."') do set IPAdress=%%i
for /f "tokens=2 delims=:(" %%i in ('ipconfig /all ^| find "IP" ^| find "10.4.16."') do set IPAdress=%%i
но это как то слишком избыточно и не лаконично.

Отправлено: 23:22, 15-05-2021 | #47


Аватара для Elven

Ветеран


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

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


cmd нет под рукой потому проверить не могу
вместо find "10. ..." используйте findstr
вроде могло бы заработать и так:
Код: Выделить весь код
...^| findstr 10.2.16. 10.4.16.
но для findstr "." - любой символ
можно попробовать так:
Код: Выделить весь код
...^| findstr /g:filter.txt
но в таком случае нужен файл, в котором построчно перечислены все фильтры по которым фильтруются IP (в примере выше - filter.txt).

но т.к. это IP, вероятнее всего таки проканает первый вариант, т.к. маловероятно, чтобы в строке ipconfig отфильтрованной по IP (а еще лучше по IPv4) оказалось что-то, у которого между октетами будет что-то кроме точки.

Отправлено: 10:07, 17-05-2021 | #48


Ветеран


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

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


Код: Выделить весь код
@echo off
:: var1
set IP="192.168.1.1","192.168.1.101","192.168.1.11"
for %%i in (%IP%) do ipconfig /all|findstr /c:%%i
echo ---------------------
::var2
set "IP=/c:"192.168.1.1" /c:"192.168.1.101" /c:"192.168.1.11""
ipconfig /all|findstr %IP%
pause

Отправлено: 14:13, 17-05-2021 | #49



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] определение IP и подключение шары

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Определение типа кодека AC'97 Giorgievich Поиск драйверов, прошивок и руководств 7 15-01-2009 19:43
[решено] Организация шары в Win2003SP2 hagen_id Microsoft Windows NT/2000/2003 3 29-11-2008 10:00
[решено] не видны шары при обращении к серверу по алиасу (Alias) newuid Microsoft Windows NT/2000/2003 2 20-03-2007 17:08
USB носитель и потеря "шары" при извлечение\подключение устройства Grenky Microsoft Windows NT/2000/2003 0 24-01-2007 05:27
[решено] Видимо Стандартные шАры MAX85 Microsoft Windows NT/2000/2003 14 18-05-2006 20:16




 
Переход