Требуется написать bat-скриптпрописки маршрутов но при прописке в маршрутизации требуется указать IP машины на которой маршруты прописываются. Хотелось бы автоматизировать процесс но не знаю какой командой получить IP что б подставить её в скрипт
а не что то попроще что б просто в bat-скрипте вставить ну например: route -p add 172.16.0.0 mask 255.255.0.0 "и_вот_тут_команда_для_получения_IP_машины_на_которой_запущен_скрипт"
На шлюзе батничек запускать будете? И какой смысл в этом скрыт?
Или это генерация на основе текущего адреса роутера? И часто у последнего меняются адреса?
Батником, конечно, извратиться можно, но не проще ли скрипт на JS/VBS написать?
pedrosoft Ну тогда таки JScript или VBScript, завтра гляну на примерный код... Но это тоже не панацея Можно еще поглядеть на команды netsh (netshinterface ip showaddress и т.д.)...
только вот откуда на обычной виндовой машине клиента возьмется grep, perl, awk
RSDN говорит вот что
Цитата
Можно ли написать на bat-языке серьезную программу?
Пожалуй, нет. Серьезная программа должна все-таки выглядеть серьезно. А все написанное на командном языке Windows таковым назвать можно лишь с о-о-о-чень большой натяжкой. Так что для решения более сложных задач автоматизации лучше все-таки взять что-нибудь более функциональное:
* Perl * Python * Ruby * JScript / VBScript
Последние, кстати, присутствуют в Windows 2000/XP по умолчанию (с некоторыми функциональными различиями) и в целом могут считаться заменой *.bat языку. Однако сдается мне, что *.bat-файлы проживут еще очень долго.
скрипт на bat в винде простым способом не написать
О да, это вы верно подметили... Потому-то и приходится изобретать варианты с awk, grep, perl Но в данном случае таки можно обойтись только силами самой винды:
Код
C:\>for /F "usebackq skip=4 tokens=8" %i in ('tracert -d %COMPUTERNAME%') do @if not %i=="" @set local_ip=%i
C:\>echo %local_ip% 10.7.0.200
Намёк понятен? Работает как в W2K SP4, так и WXP SP2...
в первом если пишу pause он даже не останавливает м.б. в нем ошибка и он сам завершается во втором похоже к переменной (или как она тут называется) %%I не присваивается ip машины
Походу глюк на форуме (или фича такая), почему то вставляются не те кавычки. Надо заменить кавычки обрамляющие ipconfig на знак ударения (который с тильдой на одной клавише, код в таблице символов 0x60).