老技術應用——DOS命令增加靜態路由

来源:互联网 发布:php开发工具 编辑:程序博客网 时间:2024/06/15 11:18
在雙網卡、多網絡的結構中,如果每次都手工增加路由表,還是挺麻煩的。而在開發、測試的過程,往往需要這樣的環境。route print 看看結果如===========================================================================Interface List0x1 ........................... MS TCP Loopback interface0x20003 ...00 15 00 3d c3 22 ...... Intel(R) PRO/Wireless 2200BG Network Connection0x30005 ...00 14 c2 e0 f4 ff ...... Broadcom NetXtreme Gigabit Ethernet======================================================================================================================================================Active Routes:Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.11.1 192.168.11.13 25 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.0.0 255.255.255.0 192.168.1.154 192.168.1.150 1 192.168.1.0 255.255.255.0 192.168.1.150 192.168.1.150 20 192.168.1.150 255.255.255.255 127.0.0.1 127.0.0.1 20 192.168.1.255 255.255.255.255 192.168.1.150 192.168.1.150 20 192.168.11.0 255.255.255.0 192.168.11.13 192.168.11.13 25 192.168.11.13 255.255.255.255 127.0.0.1 127.0.0.1 25 192.168.11.255 255.255.255.255 192.168.11.13 192.168.11.13 25 224.0.0.0 240.0.0.0 192.168.1.150 192.168.1.150 20 224.0.0.0 240.0.0.0 192.168.11.13 192.168.11.13 25 255.255.255.255 255.255.255.255 192.168.1.150 192.168.1.150 1 255.255.255.255 255.255.255.255 192.168.11.13 192.168.11.13 1Default Gateway: 192.168.11.1===========================================================================其中,0x30005 是網卡的標識,通常是每次開機是不相同的。故,要動態取得。但網卡的名稱不會變。因此,可以根據網卡的名稱,得到這個值。整過程的代碼:@ECHO OFFREM 給指定的網卡添加路由SET NETCARD=Broadcom NetXtreme Gigabit EthernetSET IP=192.168.1.154SET NW=192.168.0.0SET MA=255.255.255.0SET IF_=SET had_=for /f "tokens=3,4 delims= " %%a IN ('route PRINT ^| find /i "%IP%"') do (SET had_=%%a)for /f "tokens=1,1 delims= " %%a IN ('route PRINT ^| find /i "%NETCARD%"') do (SET IF_=%%a)ECHO IF=%IF_% Existed=%had_%IF "%had_%" EQU "" (route Add %NW% MASK %MA% %IP% IF %IF_%) SET IF_=SET had_=想知道 DOS 命令的語法,只要加 /? 就可以,如C:/> if /?得到的是長長的語法說明。