![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 05.06.2009
Сообщений: 7
|
![]()
Здравствуйте.
Суть такова: требуется при каждом переподключении вручную прописывать несколько маршрутов. Дело тут не в том, что я не знаю опции "-p", а совсем в другом. Если кому-нибудь есть дело, могу рассказать. Короче суть заключается вот в чем: есть два шлюза - 192.168.1.1 - основной, и 10.35.24.1 - через него нужно прописать доступ на pandora.com Проблема в том, что вот этот 10.35.24.1 разный при каждом переподключении. У меня возникла такая вот идея: считываем вывод команды route print, ищем там строчку 128.0.0.0 128.0.0.0 10. , извлекаем все что начинается с 10., записываем в какую-то переменную, потом подставляем значение этой переменной в route add 208.85.40.50 %переменная%. Что-то набросал, немного почитав мануалы, но оно, конечно же, не работает. Код:
Помогите допилить, пожалуйста. Или хотя бы покажите подробную документацию по синтаксису .bat, ибо так и не смог такой найти. Also сильно ногами не пинать, с .bat второй раз в жизни сталкиваюсь. Заранее огромное спасибо! |
![]() |
![]() |
![]() |
#2 |
Ископаемый админ
Форумчанин
Регистрация: 08.07.2010
Сообщений: 992
|
![]() Код:
Код:
Код:
![]() Код:
Особое внимание именованию переменных, оно там отличается от стандартного. Код:
Выписывайте лучший журнал о беспроводных технологиях "Ukrainian Wireless News"! Издается с 1913 года.
Последний раз редактировалось WildHunter; 13.08.2011 в 05:02. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 05.06.2009
Сообщений: 7
|
![]()
Программа так прописывает, при этом 0.0.0.0 с маской 0.0.0.0 остается на основном шлюзе, но при этом весь трафик идет через VPN.
Ок, файлы создаем вручную. Хорошо ![]() Огромное спасибо за ответ! |
![]() |
![]() |
![]() |
#4 | |
Ископаемый админ
Форумчанин
Регистрация: 08.07.2010
Сообщений: 992
|
![]()
Файл создается автоматически при использовании той команды, что я привел. И в конце его нужно будет удалять, поскольку новый запуск батника будет не перезаписывать данные в нем, а дописывать в конец.
Цитата:
C: cd C:\work\
Выписывайте лучший журнал о беспроводных технологиях "Ukrainian Wireless News"! Издается с 1913 года.
|
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 05.06.2009
Сообщений: 7
|
![]()
Спасибо.
Вот набросал с исправлениями: Код:
Код:
1. Попадает еще и интерфейс 2. Адрес шлюза может содержать разное количество цифр, соответственно и количество пробелов будет разное. Ну и еще один момент: как мне при обработке пропустить Список интерфейсов? Пробовал задать параметр eol, но может быть только одно значение, а мне нужно примерно так eol=C,=,1,2,3,4,5,6,7,8,9 , но увы, такой вариант не предусмотрен. Заранее огромное спасибо! PS Подумал над вариантом запуска какой-нибудь сторонней программы-парсера, которая оставит в temp.txt только ip шлюза, но, к сожалению, понятия не имею, как такую программу реализовать (по идее должно быть просто ![]() UPD Может быть так: Код:
Последний раз редактировалось Vilgelm; 14.08.2011 в 00:14. |
![]() |
![]() |
![]() |
#6 |
Ископаемый админ
Форумчанин
Регистрация: 08.07.2010
Сообщений: 992
|
![]()
Попробуйте брать данные не из route, а например из
1. ipconfig 2. netsh int ip show route 3. Из реестра командой REG QUERY. Нужные ключи реестра ищите здесь: HKEY_LOCAL_MACHINE\SYSTEM\CurrentCo ntrolSet\services\Tcpip\Parameters\ Interfaces Наверняка найдете вариант, который парсить будет несложно.
Выписывайте лучший журнал о беспроводных технологиях "Ukrainian Wireless News"! Издается с 1913 года.
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 05.06.2009
Сообщений: 7
|
![]()
В общем спарсить я его смог. Вот так:
Код:
Однако дальше начинается какая-то ересь. Т.е. выполняется просто route add 208.85.40.50, без IP шлюза, что приводит к выводу справки. Короче, данные из переменной не подставляются. Думал, что вызываю ее неправильно, пробовал вызывать как %j - тогда пишет "Ошибка параметра" (выполняется команда route add 208.85.40.50 j). Пробовал как %j%, результат как и в первом случае. Как нужно вызвать переменную? |
![]() |
![]() |
![]() |
#8 |
Ископаемый админ
Форумчанин
Регистрация: 08.07.2010
Сообщений: 992
|
![]()
route add 208.85.40.20 %j%
Все сработало. Смотрите внимательно, возможно где-то лишние пробелы в переменной.
Выписывайте лучший журнал о беспроводных технологиях "Ukrainian Wireless News"! Издается с 1913 года.
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 05.06.2009
Сообщений: 7
|
![]()
Все, сделал:
Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Надо написать 2 BAT файла | TypeString | Фриланс | 4 | 09.08.2010 09:50 |
.bat файлы; передача значения из файла в переменную | Manik | Помощь студентам | 1 | 06.05.2010 10:36 |
Почему цикл for /r %disk% %%b в bat скрипте не принимает переменную | DS75 | Помощь студентам | 0 | 31.03.2010 13:14 |
ошибка в выводе данных поиска | bloger | PHP | 1 | 10.03.2010 17:07 |
Отследить команды, и написать бота. | bassoto | PHP | 10 | 14.05.2009 17:34 |