Я пишу скрипт для автоматического создания / 32 маршрутов к устройствам в сети, доступной через туннельный интерфейс LAB.
Я должен сделать это, потому что туннель LAB должен быть установлен на другой (корпоративный туннель), который автоматически пересылает пакеты внутри него, если нет маршрутов для пункта назначения.Следовательно, я создаю все / 32 маршрута для устройств в сети, чтобы предотвратить пересылку корпоративного туннеля.
Следующий скрипт делает свое дело, но по неизвестной мне причине, я должен выполнить его 3 или 4 раза, прежде чемоно работает.(Обратите внимание, что я большой новичок со скриптом bat)
@echo off
c:
cd %systemroot%
set /P input=Please enter a LAB ID:
set /A labid=%input%
if %labid% GTR 98 (
if %labid% LSS 255 (
set "net=10.%labid%"
for /f "tokens=1-5 delims= " %%A in ('route print ^| findstr %net%') do (
echo Adding static routes for LAB %labid%...
set gatewayssl=%%C
echo Gateway is SSL interface: %gatewayssl%
for /l %%h in (1,1,254) do call :add_route %%h %gatewayssl%
goto:EOF
)
goto:EOF
)else (
echo Invalid Lab ID
goto:EOF
)
) else (
echo Invalid Lab ID
goto:EOF
)
:add_route
set ipaddr=%net%.0.%1
route add %ipaddr% mask 255.255.255.255 %2% metric 1
goto:EOF
Как правило, здесь выводится результат:
[...]>Z:\ALU\SGCC\LAB\labrouting.bat
Please enter a LAB ID:104
FINDSTR : Ligne de commande erronée
C:\WINNT>Z:\ALU\SGCC\LAB\labrouting.bat
Please enter a LAB ID:104
Adding static routes for LAB 104...
Gateway is SSL interface:
Manipule les tables de routage du réseau.
ROUTE [-f] [-p] [cmde [destin]
[route manual apperas many times because of the for loop...]
C:\WINNT>Z:\ALU\SGCC\LAB\labrouting.bat
Please enter a LAB ID:104
Adding static routes for LAB 104...
Gateway is SSL interface: 192.168.104.1
Как вы можете, после запуска этого скрипта 3 раза, оннаконец работает.Не могли бы вы помочь определить причины этой проблемы?
Заранее благодарю вас за вашу благодарную поддержку.
С уважением,
Сильвен.