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

Показать сообщение отдельно

Ветеран


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

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


Цитата Debugger:
Батник получился довольно громоздким, все думаю как бы его уменьшить (просто из спортивного интереса) »
1. В общем и целом — имеет смысл для повторяющегося текста использовать переменные. Скажем, у Вас многократно идёт текст «Подключение по локальной сети», идентифицирующий подключение. Может быть, стоит даже захватить чуть больше — вместе с «name=…».

Т.е., что-то наподобие:
Код: Выделить весь код
set sName=name="Подключение по локальной сети"
…
echo set address %sName% source=static addr=192.168.9.192 mask=255.255.252.0 >> c:\ipconfig
echo set address %sName% gateway=192.168.10.199 gwmetric=0 >> c:\ipconfig
echo set dns %sName% source=static addr=192.168.10.5 register=PRIMARY >> c:\ipconfig
То же относится и к имени файла, куда мы выводим — лучше его один раз определить через переменную, затем использовать эту переменную в коде (см. также п.2).

2. Чтобы не писать в каждой команде перенаправление вывода — можно оформить их операторными скобками, за/перед которыми уже и использовать перенаправление. Наподобие:
Код: Выделить весь код
set sFileOut=c:\ipconfig.txt
set sName=name="Подключение по локальной сети"
…
…
>"%sFileOut%" (
	echo pushd interface ip
	echo set address %sName% source=static addr=192.168.9.192 mask=255.255.252.0
	echo set address %sName% gateway=192.168.10.199 gwmetric=0
	echo set dns     %sName% source=static addr=192.168.10.5 register=PRIMARY
	echo add dns     %sName% addr=192.168.10.171 index=2
	echo set wins    %sName% source=static addr=none
	echo popd
)
netsh exec "%sFileOut%"
del /q "%sFileOut%"
…
…
Как Вы поняли — это всё «косметика».
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:32, 11-02-2012 | #4