Xóa tất cả và chỉ các tuyến (tĩnh) liên tục trên Windows


8

Có một cách đơn giản để làm điều này thông qua một lệnh shell / batch? Một VBScript cũng sẽ ổn thôi.

Câu trả lời:


9

Để xóa tất cả các tuyến đường, sử dụng:

tuyến đường -f

Để chỉ xóa các tuyến đường liên tục, bạn có thể sử dụng

reg xóa HKLM \ HỆ THỐNG \ CurrentControlset \ Services \ Tcpip \ Paramameter \ PersistentRoutes / va / f
nhưng điều này sẽ không loại bỏ chúng khỏi các tuyến hiện đang hoạt động.


Tôi có vô số tuyến đường liên tục, nhưng tôi không thấy bất kỳ tuyến nào trên regkey đó. Có phải chúng được lưu trữ ở một nơi khác trong những ngày này (Windows 10)?
NickG

@NickG: Không chắc chắn. Bạn đang nói về các tuyến IPv4 hoặc IPv6?
dùng1686

0

Dưới đây là tập lệnh cmd trích xuất các tuyến tĩnh từ sổ đăng ký và đưa route deletera các lệnh cho từng tuyến.

Phương pháp này loại bỏ cả hai khỏi danh sách các tuyến liên tục được lưu trữ và khỏi các tuyến hiện đang hoạt động.

@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

Điều này có thể được thực hiện như một vòng lặp cơ bản cho phép bạn xóa các tuyến chính xác cho các tuyến hiện tại và tương lai.

(Và không tham gia vào việc xem xét hoặc chỉnh sửa bất kỳ mục đăng ký nào) bằng cách sử dụng một bản in tuyến đường đơn giản được tìm thấy và lặp lại trong một lần xóa tuyến đường.

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  ) )
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.