原因:想写一个批量加静态路由的 bat 脚本,适用于不同网段的终端快速配置双网卡上网。
过程:由于是第一次写,也不知道怎么在网上找只能用 gpt3.5 艰难的生成好了所有功能,但是太长了,问了同事 可以用变量缩短,又是一个上午过去了 gpt 被玩坏了发一句抱歉一句然后瞎扯。
route add -p "A" mask 255.255.255.0 "B" 结果:目前是删除路由的那段脚本好了,添加脚本提示一堆看着像不合规的命令输出,这段要实现的是在"A"变量 组里面循环一次,"B"里的下一跳路由用户输入的序号提供,由于用户直接输入的是网段还需要再改写成网关 才行,下面是代码,希望有大佬给指点下,万分感谢:
@echo off
PUSHD %~DP0
TITLE 双网卡配置脚本
mode con cols=60 lines=32
color 3e
:menu
cls
echo.
echo. 请选择内网网段
echo ---------------------------
echo.
echo 0 10.10.6.0
echo 1 10.10.7.0
echo 2 10.10.8.0
echo 3 10.10.9.0
echo 4 10.10.10.0
echo 5 10.10.11.0
echo 6 10.10.12.0
echo 7 10.10.13.0
echo 8 10.10.14.0
echo 9 192.168.200.0
echo 10 192.168.22.0
echo 11 192.168.201.0
echo.
echo.
echo q 退出
echo.
echo d 删除路由表
echo.
echo ---------------------------
echo.
echo. 请输入序号:
set /p ID=
if "%ID%"=="q" (
goto :eof
)
if "%ID%"=="d" (
goto delete_routes
)
if %ID% LSS 0 (
goto menu
)
setlocal enabledelayedexpansion
set "routes=10.10.6.0 10.10.7.0 10.10.8.0 10.10.9.0 10.10.10.0 10.10.11.0 10.10.12.0 10.10.13.0 10.10.14.0 192.168.200.0 192.168.22.0 192.168.201.0"
set "gateways=10.10.6.1 10.10.7.1 10.10.8.1 10.10.9.1 10.10.10.1 10.10.11.1 10.10.12.1 10.10.13.1 10.10.14.1 192.168.200.1 192.168.22.1 192.168.201.1"
for /L %%i in (0,1,11) do (
if "!ID!"=="%%i" (
set "gw=!gateways%%i!"
for %%a in (!routes!) do (
route add -p %%a mask 255.255.255.0 !gw!
echo 已添加路由: %%a !gw!
)
)
)
echo. 添加完成
timeout /t 50 >nul
goto menu
:delete_routes
set "routes=10.10.6.0 10.10.7.0 10.10.8.0 10.10.9.0 10.10.10.0 10.10.11.0 10.10.12.0 10.10.13.0 10.10.14.0 192.168.200.0 192.168.22.0 192.168.201.0"
for %%r in (%routes%) do (
route delete %%r
echo 已删除路由: %%r
)
timeout /t 1 >nul
echo. 删除完成
goto :menu
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.