Vilgelm
14-08-2011, 13:13
Здравствуйте.
Пишу небольшой батник. Вот "проблемная" часть кода:
route print 0.0.0.0 MASK 128* -4>>temp.txt //выводим таблицу маршрутов в файл
FINDSTR /c:"10." temp.txt>tmp.txt //ищем строку с нужным шлюзом
FOR /F "tokens=2,3* delims= " %%i in (tmp.txt) do @echo %%i %%j % >tmp1.txt //убираем лишние данные
FOR /F "tokens=2,3* delims= " %%i in (tmp1.txt) do @echo %%i %%j //присваиваем ip шлюза переменной j
route add 208.85.40.50 %%j //выполняем добавление маршрута со значением переменной j
route add 208.85.40.80 %%j
route add 208.85.40.20 %%j
До добавления маршрута все работает прекрасно (если сделать вывод FOR /F "tokens=2,3* delims= " %%i in (tmp1.txt) do @echo %%i %%j в txt, увидим нужный IP).
Однако дальше начинается какая-то ересь. Т.е. выполняется просто route add 208.85.40.50, без IP шлюза, что приводит к выводу справки. Короче, данные из переменной не подставляются. Думал, что вызываю ее неправильно, пробовал вызывать как %j - тогда пишет "Ошибка параметра" (выполняется команда route add 208.85.40.50 j). Пробовал как %j%, результат как и в первом случае.
Прошу помощи.
Заранее огромное спасибо!
Пишу небольшой батник. Вот "проблемная" часть кода:
route print 0.0.0.0 MASK 128* -4>>temp.txt //выводим таблицу маршрутов в файл
FINDSTR /c:"10." temp.txt>tmp.txt //ищем строку с нужным шлюзом
FOR /F "tokens=2,3* delims= " %%i in (tmp.txt) do @echo %%i %%j % >tmp1.txt //убираем лишние данные
FOR /F "tokens=2,3* delims= " %%i in (tmp1.txt) do @echo %%i %%j //присваиваем ip шлюза переменной j
route add 208.85.40.50 %%j //выполняем добавление маршрута со значением переменной j
route add 208.85.40.80 %%j
route add 208.85.40.20 %%j
До добавления маршрута все работает прекрасно (если сделать вывод FOR /F "tokens=2,3* delims= " %%i in (tmp1.txt) do @echo %%i %%j в txt, увидим нужный IP).
Однако дальше начинается какая-то ересь. Т.е. выполняется просто route add 208.85.40.50, без IP шлюза, что приводит к выводу справки. Короче, данные из переменной не подставляются. Думал, что вызываю ее неправильно, пробовал вызывать как %j - тогда пишет "Ошибка параметра" (выполняется команда route add 208.85.40.50 j). Пробовал как %j%, результат как и в первом случае.
Прошу помощи.
Заранее огромное спасибо!