Hapus semua dan hanya rute persisten (statis) di Windows

8

Apakah ada cara sederhana untuk melakukan ini melalui perintah shell / batch? VBScript juga akan baik-baik saja.

pengguna1686
sumber

Jawaban:

9

Untuk menghapus semua rute, gunakan:

rute -f

Untuk menghapus hanya rute persisten, Anda bisa menggunakan

reg hapus HKLM \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ PersistentRoutes / va / f
tetapi ini tidak akan menghapusnya dari rute yang sedang aktif.

pengguna1686
sumber
Saya punya banyak rute persisten, tapi saya tidak melihat ada di regkey itu. Apakah mereka disimpan di tempat lain hari ini (Windows 10)?
NickG
@NickG: Tidak yakin. Apakah Anda berbicara tentang rute IPv4 atau IPv6?
user1686
0

Berikut ini adalah skrip cmd yang mengekstrak rute statis dari registri, dan mengeluarkan route deleteperintah untuk masing-masingnya.

Metode ini menghapus keduanya dari daftar rute persisten yang tersimpan, dan dari rute yang saat ini aktif.

@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
)
Klaus Hartnegg
sumber
0

Ini dapat dilakukan sebagai dasar untuk-loop yang memungkinkan Anda untuk menghapus rute dengan benar untuk rute yang ada dan yang akan datang.

(Dan tanpa terlibat dalam meninjau atau mengedit item registri apa pun) menggunakan cetak rute sederhana disalurkan ke find dan dilingkarkan ke penghapusan rute.

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  ) )
Ben Personick
sumber