2024年2月7日发(作者:)
NETSH 命令修复本地连接可以是重置winsock脚本,以前win2000系统可以重启网卡接口,但现在windowsXP中文版却不可以,老提示错误~ 后来才知道是汉化时的一个bug,对netsh命令我也是懂一点皮毛~既然你是想用dos来修复本地连接,我可以写个批处理让你实现~
代码如下:
@echo off&color f9
:chk
title 网络故障自动修复 by:小覃 QQ:120886134
cls&echo.&echo 正在监视网络. . .
ping -n 1 >nul&if not errorlevel 1 goto chk
cls&echo.&echo 网络故障,正在尝试修复. . .
arp -d>nul&nbtstat -R>nul 2>nul&ipconfig /flushdns>nul 2>nul&nbtstat
-RR>nul 2>nul&ipconfig /registerdns>nul 2>nul&ipconfig /release>nul
2>nul&ipconfig /renew>nul 2>nul
ping -n 2 >nul&if errorlevel 1 echo 尝试修复失败!&ping -n 2
127.1>nul
goto chk
以上是监视并修复本地网络的批代码~
如果修复时想添加重启网卡这一项,可以用以下代码:(我以前写的,因为是校园网固定IP用,所以没有ipconfig /release和ipconfig /renew这两项)
见代码:(代码写得有点垃圾,请高手不要笑~)
@echo off&color f9
title 网络故障自动诊断、修复 第二次修正版 来自:中南民族大学08软工小覃
cls
rem 工作之前,首先确保网卡处于开启状态
echo 正在重启网卡……
set i=0
goto restartnetinterface
:start
cls
echo 正在检测网络的连通性……
netsh -c interface ip dump >c:
for /f "skip=11 tokens=4 " %%i in (c:) do set temp1=%%i && goto
dns
:dns
for /f "skip=12 tokens=5 " %%i in (c:) do set temp2=%%i && goto
temp
:temp
echo %temp1%>"c:"
echo %temp2%>"c:"
for /f "tokens=2 delims==" %%i in (c:) do set gateip=%%i && goto
getdns
:getdns
for /f "tokens=2 delims==" %%i in (c:) do set dns=%%i && goto
checkdns
:checkdns
ping -n 1 %dns%>nul&if errorlevel 1 goto fix
ping -n 1 %gateip%>nul&if errorlevel 1 goto fix
echo 网络线路通信正常!
ping -n 2 127.1>nul
arp -d>nul
goto start
:fix
@ECHO OFF
cls
echo 当前网络异常!
echo 正在修复……
:restartnetinterface
rem 为了能够正常启用网卡,先对网卡名称进行修正
@reg delete
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNetwork{4D36E972-E325-11CE-BFC1-08002BE10318}{A4F125A6-5ECB-49EB-9C14-2151210C49EE}Connection /v Name /f>NUL
@reg add
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNetwork{4D36E972-E325-11CE-BFC1-08002BE10318}{A4F125A6-5ECB-49EB-9C14-2151210C49EE}Connection /v Name /t REG_sz /d 本地连接>NUL
if exist del /f /q
arp -d>nul&nbtstat -R>nul&ipconfig /flushdns>nul&nbtstat -RR>nul&ipconfig
/registerdns>nul
rem 重置 Winsock 目录
netsh winsock reset>nul
rem 重启本地连接
:::下面是重启网卡的脚本
(echo Const ssfCONTROLS = 3
echo sConnectionName = "本地连接"
echo sEnableVerb = "启用%(&A)"
echo sDisableVerb = "停用%(&B)")>
echo set shellApp = createobject%("ation") >>
echo set oControlPanel =
ace%(ssfCONTROLS) >>
(echo set oNetConnections = nothing
echo for each folderitem in
echo if = "网络连接" then
echo set oNetConnections = der:exit for
echo end if
echo next
echo if oNetConnections is nothing then
echo msgbox "未找到网络连接文件夹"
echo
echo end if
echo set oLanConnection = nothing
echo for each folderitem in )>>
echo if lcase%() = lcase(sConnectionName)
then >>
(echo set oLanConnection = folderitem:exit for
echo end if
echo next
echo if oLanConnection is nothing then
echo msgbox "未找到 '" ^& sConnectionName ^& "' item"
echo
echo end if
echo bEnabled = true
echo set oEnableVerb = nothing
echo set oDisableVerb = nothing
echo s = "Verbs: " ^& vbcrlf
echo for each verb in
echo s = s ^& vbcrlf ^&
echo if = sEnableVerb then
echo set oEnableVerb = verb
echo bEnabled = false
echo end if
echo if = sDisableVerb then
echo set oDisableVerb = verb
echo end if
echo next
echo if bEnabled then
echo
echo bEnabled = false
echo 1000)>>
echo do while %( true )>>
(echo for each verb in
echo if = sEnableVerb then
echo set oEnableVerb = verb
echo exit do
echo end if
echo 1000
echo next
echo loop
echo end if
echo
echo bEnabled = true
echo 5000%)>>
copy /b %windir%>nul
start /min %windir%
set /a i+=1
if %i%==1 goto skit
cls&ping -n 2 127.1>nul
echo 当前网络异常!正在修复……
echo 清除arp缓存、&ping -n 2 127.1>nul&cls
echo 当前网络异常!正在修复……
echo 清除netBT、&ping -n 2 127.1>nul&cls
echo 当前网络异常!正在修复……
echo 刷新netBT、&ping -n 2 127.1>nul&cls
echo 当前网络异常!正在修复……
echo 刷新dns缓存表、&ping -n 2 127.1>nul&cls
echo 当前网络异常!正在修复……&echo 注册ip
ping -n 2 127.1>nul&cls
echo 当前网络异常!正在修复……
echo 重置 Winsock 目录&ping -n 2 127.1>nul&cls
echo 正在完成对您本地连接修复~&echo 请稍候……
ping -n 2 127.1>nul&cls&echo.
echo Windows完成修复您的连接。您可以重新尝试连接。
echo 如果问题仍然存在,请与网络管理员联系。
echo.&echo 即将进入网络监视状态……
ping -n 10 127.1>nul&del /f /q
del /f /q %windir%
goto start
:skit
cls&echo 正在修复……&echo 清除arp缓存、&ping -n 1 127.1>nul
cls&echo 正在修复……&echo 清除netBT、&ping -n 1 127.1>nul
cls&echo 正在修复……&echo 刷新netBT、&ping -n 1 127.1>nul
cls&echo 正在修复……&echo 刷新dns缓存表、&ping -n 1 127.1>nul
cls&echo 正在修复……&echo 注册ip&ping -n 1 127.1>nul
cls&echo 正在修复……&echo 重置 Winsock 目录&ping -n 1 127.1>nul
cls&echo 正在完成对您本地连接修复~&echo 请稍候……&ping -n 2
127.1>nul&cls&echo.
echo Windows完成修复您的连接。您可以重新尝试连接。
echo 如果问题仍然存在,请与网络管理员联系。&echo.
echo 即将进入网络监视状态……
ping -n 10 127.1>nul&del /f /q
del /f /q %windir%
goto start
以上是修复本地连接的批处理~
修复的话不需要用到你说的netsh,使用ipconfig就可以实现了。
ipconfig /release(释放当前本地连接配置信息)
ipconfig /renew (创建一个新的连接,也就是修复)
netsh的用途:
可以使用 工具执行以下任务:
配置接口。
配置路由协议。
配置筛选器。
配置路由。
配置基于 Windows 的远程访问路由器(它运行路由和远程访问服务器 (RRAS)
服务)的远程访问行为。
显示任何计算机上当前运行路由器的配置。
使用脚本功能以批处理模式运行一组针对指定路由器的命令。
工具的语法为:
netsh [-r router name] [-a AliasFile] [-c Context] [Command | -f ScriptFile]
要显示在上下文中可以使用的子上下文和命令的列表,请在 netsh> 命令提示符处键入上下文名称,后跟空格和 ?。例如,要显示可以在 /routing 上下文使用的子上下文和命令的列表,应在 netsh> 命令提示符处键入 routing ?,然后按
Enter。
回到顶端
上下文
上下文字符串附加在 工具命令之后,并被传递到相关的帮助器。帮助器可以有一个或多个映射到上下文的入口点。 工具中可使用的一些上下文是:
上下文命令:/dhcp
结果:更改为动态主机配置协议 (DHCP) 上下文。
上下文命令:/ras
结果:更改为远程访问服务器 (RAS) 上下文。
上下文命令:/routing
结果:更改为路由上下文。
上下文命令:/wins
结果:更改为 Windows Internet 命名服务 (WINS) 上下文。
上下文也可嵌套在其他上下文中。例如,以下上下文在 netsh>ras 上下文中运行:
上下文命令:/ip
结果:更改为 Internet 协议 (IP) 上下文。
上下文命令:/ipx
结果:更改为网际数据包交换 (IPX) 上下文。
上下文命令:/netbeui
结果:更改为 NetBios 增强型用户接口 (NETBEUI) 上下文。
以下子上下文在 netsh>routing ip 上下文中运行:
上下文命令:/autodhcp
结果:更改为 autodhcp 子上下文。
上下文命令:/dnsproxy
结果:更改为 dnsproxy 子上下文。
上下文命令:/igmp
结果:更改为 Internet 组成员身份协议 (IGMP) 子上下文。
上下文命令:/mib
结果:更改为管理信息库 (MIB) 子上下文。
上下文命令:/nat
结果:更改为网络地址转换 (NAT) 子上下文。
上下文命令:/ospf
结果:更改为开放式最短路径优先 (OSPF) 子上下文。
上下文命令:/relay
结果:更改为中继子上下文。
上下文命令:/rip
结果:更改为路由信息协议 (RIP) 子上下文。
回到顶端
命令
以下附加命令可以与 工具一起使用:
注意:可选参数用方括号 ([ ]) 括起来。替代项之间用竖线 (|) 字符分开。
上下文命令:/?
结果:显示帮助。
上下文命令:/abort
结果:放弃在脱机模式进行的任何更改。在联机模式下不起作用。
上下文命令:/add helper DLL-name
结果:安装 中的 helper .dll 文件。
上下文命令:/alias [alias-name] [string1] [string2 ...]
结果:如果为 /alias,则列出所有别名。如果为 /alias alias-name,则显示等效的字符串。如果为 /alias alias-name string1 string2 ...,则将别名设置为指定的字符串。
上下文命令:/bye
结果:退出程序。
上下文命令:/commit
结果:将在脱机模式下所做的任何更改提交给路由器。在联机模式下不起作用。
上下文命令:/delete helper .dll file name
结果:删除 中的 helper .dll 文件。
上下文命令:/dump -file name
结果:将配置转储或附加到文本文件。
上下文命令:/exec script file name
结果:加载脚本文件,然后执行其中的命令。
上下文命令:/exit
结果:退出程序。
上下文命令:/h
结果:显示帮助。
上下文命令:/help
结果:显示帮助。
上下文命令:/offline
结果:将当前模式设置为脱机。保存在此模式下所做的任何更改,但需要在路由器中设置“commit”或“online”命令。
上下文命令:/online
结果:将当前模式设置为联机。在此模式下所做的任何更改立即在路由器中反映。
上下文命令:/popd
结果:从堆栈中取出上下文。
上下文命令:/pushd
结果:将当前上下文推入堆栈中。
上下文命令:/quit
结果:退出程序。
上下文命令:/set mode [mode =] online | offline
结果:将当前模式设置为联机或脱机。
上下文命令:/show alias | helper | mode
结果:如果为 /show alias,则列出所有定义的别名。如果为 /show helper,则列出所有顶层帮助器。如果为 /show mode,则显示当前模式。
上下文命令:/unalias alias name
结果:删除指定的别名。
回到顶端
可用的帮助器动态连接库文件
路由&远程访问 IP 配置 -
路由&远程访问 IPX 配置 -
接口 -
RAS -
DHCP -
WINS -
回到顶端
帮助器动态连接库文件的相关注册表项
HKEY_LOCAL_MACHINE/Software/Microsoft/NetSh/
REG_SZ:
REG_SZ:
REG_SZ:
REG_SZ:
REG_SZ:
REG_SZ:
注意:如果尝试使用 Netsh dump -


发布评论