在Windows上清除所有且仅持久(静态)路由


8

有没有一种简单的方法可以通过shell命令/批处理来完成?VBScript也可以。

Answers:


9

要清除所有路线,请使用:

路线-f

要仅清除永久路线,可以使用

reg删除HKLM \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ PersistentRoutes / va / f
但这不会将它们从当前活动的路由中删除。


我有很多持久性路由,但是在该regkey上看不到任何路由。这些天它们是否存储在其他地方(Windows 10)?
NickG

@NickG:不确定。您是在谈论IPv4或IPv6路由吗?
user1686 '18

0

这是一个cmd脚本,可从注册表中提取静态路由,并route delete为每个路由发出命令。

此方法将它们从存储的持久性路由列表和当前活动的路由中删除。

@echo off
set key=HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
for /f "tokens=1,2,3,* delims=," %%i in ('reg query %key% ^| find "REG_SZ"') do (
   route delete %%i mask %%j %%k
)

0

这可以作为基本的for循环来完成,允许您正确清除现有和将来路由的路由。

(并且无需参与审阅或编辑任何注册表项),使用简单的路由打印通过管道传递到查找中并循环到路由删除中。

FOR /F "TOKENS=1-5" %a IN ('ROUTE PRINT ^| FIND /I /V "On-Link" ^| FINDSTR /E /R /C:" *\.[0-9]*[0-9] *[0-9][0-9]*"') DO @(IF /I "%~e" EQU "" ( ROUTE DELETE %a MASK %b %c  ) )
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.