欢迎各位兄弟 发布技术文章
这里的技术是共享的
reset_net.bat
这个批处理脚本的目的是自动设置网络接口为自动获取IP地址和DNS,并重置网络相关的配置。以下是对脚本的详细解释:
关闭命令回显:
@echo off
这行代码关闭了命令回显,使得脚本运行时不会显示每一条命令。
显示提示信息:
echo 正在设置网络接口...
这行代码输出一条提示信息,告诉用户脚本正在设置网络接口。
遍历所有网络接口:
for /f "tokens=5" %%a in ('netsh interface ipv4 show interfaces') do (
这行代码使用for /f
循环遍历netsh interface ipv4 show interfaces
命令的输出,提取第5个令牌(通常是网络接口的名称)。
设置接口为自动获取IP地址和DNS:
set "interface=%%a"
setlocal enabledelayedexpansion
echo !interface!
netsh interface ipv4 set address "!interface!" dhcp
netsh interface ipv4 set dns "!interface!" dhcp
这部分代码将当前接口设置为自动获取IP地址和DNS,并输出接口名称。
禁用并重新启用网络接口:
netsh interface set interface "!interface!" admin=disable
timeout /t 5
netsh interface set interface "!interface!" admin=enable
这部分代码先禁用网络接口,等待5秒,然后重新启用网络接口。
结束局部环境:
endlocal
这行代码结束setlocal enabledelayedexpansion
开启的局部环境。
显示设置完成信息:
echo 设置完成
这行代码输出一条提示信息,告诉用户设置已完成。
重置网络相关配置:
netsh winsock reset
netsh int ip reset c:/catalog.txt
netsh winhttp reset proxy
netsh advfirewall reset
ipconfig /flushdns
ipconfig /release
ipconfig /renew
这部分代码重置Winsock、IP设置、WinHTTP代理、防火墙设置,并刷新DNS缓存、释放和续订IP地址。
管理员权限:
这个脚本需要以管理员权限运行,因为netsh
和ipconfig
命令通常需要管理员权限才能执行。
网络接口名称:
如果网络接口名称中包含空格,可能需要使用引号将接口名称括起来。
重置操作的影响:
重置网络配置可能会导致网络连接暂时中断,建议在必要时使用。
日志文件:netsh int ip reset c:/catalog.txt
这行代码将重置IP设置的日志输出到c:/catalog.txt
文件中,确保该路径可写。
错误处理:
可以添加错误处理机制,以便在某个命令失败时能够捕获错误并采取相应措施。
日志记录:
可以将脚本的输出重定向到日志文件中,以便后续查看和调试。
用户确认:
可以在脚本开始前添加用户确认提示,避免误操作。
@echo off
echo 正在设置网络接口...
rem 遍历所有网络接口
for /f "tokens=5" %%a in ('netsh interface ipv4 show interfaces') do (
set "interface=%%a"
setlocal enabledelayedexpansion
echo 正在设置接口: !interface!
rem 设置接口为自动获取IP地址
netsh interface ipv4 set address "!interface!" dhcp
if errorlevel 1 (
echo 设置IP地址失败: !interface!
) else (
echo 设置IP地址成功: !interface!
)
netsh interface ipv4 set dns "!interface!" dhcp
if errorlevel 1 (
echo 设置DNS失败: !interface!
) else (
echo 设置DNS成功: !interface!
)
netsh interface set interface "!interface!" admin=disable
timeout /t 5
netsh interface set interface "!interface!" admin=enable
endlocal
)
echo 设置完成
netsh winsock reset
netsh int ip reset c:/catalog.txt
netsh winhttp reset proxy
netsh advfirewall reset
ipconfig /flushdns
ipconfig /release
ipconfig /renew
echo 所有操作已完成。
这个改进版本增加了错误处理和日志输出,使得脚本更加健壮和易于调试。