Windows批量添加静态路由最直接方式是用bat脚本自动执行,需以管理员身份运行并使用route -p add命令实现永久生效,避免重启丢失;脚本应包含权限检测、重复判断及添加验证机制。

需要在Windows系统中批量添加静态路由,避免每次重启后手动输入route add命令,用bat脚本自动执行是最直接的解决方式。
基础批处理脚本写法
新建记事本,输入以下内容,保存为add_route.bat(编码选ANSI或UTF-8无BOM):
@echo off
route add 192.168.10.0 mask 255.255.255.0 192.168.1.1
双击运行即可添加一条路由。注意:此命令仅在当前会话生效,重启后失效。
添加多条路由并提升权限
Windows Vista之后的系统,route add必须以管理员身份运行,否则提示“请求的操作需要提升”。脚本需自动提权:
方法一:检测权限并重启自身
@echo off
net session >nul 2>&1
if %errorLevel% == 0 goto :run
echo 正在以管理员身份重新启动...
powerShell -Command "Start-Process cmd.exe -ArgumentList '/c %~f0' -Verb RunAs"
exit /b
:run
route add 192.168.10.0 mask 255.255.255.0 192.168.1.1
route add 10.20.30.0 mask 255.255.255.0 192.168.1.254
这一步必须加net session检测,否则普通用户双击会静默失败,不报错也不执行路由命令。
永久添加路由(重启不丢失)
使用-p参数让路由持久化,但要注意:【-p参数必须紧跟route add,不能写成route add -p】
正确写法:
route -p add 192.168.10.0 mask 255.255.255.0 192.168.1.1
错误写法(常见坑):
route add -p 192.168.10.0 mask 255.255.255.0 192.168.1.1 → 会提示“参数格式错误”
永久路由一旦添加,删除时也必须带-p,否则删不掉。
带判断的智能脚本(推荐日常使用)
第一步:检查目标网络是否已存在路由,避免重复添加报错
第二步:若不存在,则添加;若已存在,跳过并提示
第三步:添加完成后用route print | findstr验证是否成功
@echo off
setlocal enabledelayedexpansion
set "target=192.168.10.0"
route print | findstr /c:"!target!" >nul
if %errorLevel% equ 0 (
echo 路由 !target! 已存在,跳过添加
) else (
route -p add !target! mask 255.255.255.0 192.168.1.1
if %errorLevel% equ 0 (echo 路由添加成功) else (echo 添加失败,请检查网关是否可达)
)
这一步用到了延迟变量扩展和错误码判断,能防止因重复添加导致cmd窗口卡住或报错中断。


















