欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

自己亲自做的windows 的 重置网络 bat 文件使用GB2312的编码 有大用 有大大用 有大大大用 有大大大大用 有大大大大大用


reset_net.bat


@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
netsh interface ipv4 set dns  "!interface!" dhcp
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  




这个批处理脚本的目的是自动设置网络接口为自动获取IP地址和DNS,并重置网络相关的配置。以下是对脚本的详细解释:

脚本解释

  1. 关闭命令回显

    batch
    复制
    @echo off

    这行代码关闭了命令回显,使得脚本运行时不会显示每一条命令。

  2. 显示提示信息

    batch
    复制
    echo 正在设置网络接口...

    这行代码输出一条提示信息,告诉用户脚本正在设置网络接口。

  3. 遍历所有网络接口

    batch
    复制
    for /f "tokens=5" %%a in ('netsh interface ipv4 show interfaces') do (

    这行代码使用for /f循环遍历netsh interface ipv4 show interfaces命令的输出,提取第5个令牌(通常是网络接口的名称)。

  4. 设置接口为自动获取IP地址和DNS

    batch
    复制
    set "interface=%%a"
    setlocal enabledelayedexpansion
    echo !interface!
    
    netsh interface ipv4 set address "!interface!" dhcp
    netsh interface ipv4 set dns  "!interface!" dhcp

    这部分代码将当前接口设置为自动获取IP地址和DNS,并输出接口名称。

  5. 禁用并重新启用网络接口

    batch
    复制
    netsh interface  set interface   "!interface!" admin=disable
    timeout /t 5  
    netsh interface  set interface   "!interface!" admin=enable

    这部分代码先禁用网络接口,等待5秒,然后重新启用网络接口。

  6. 结束局部环境

    batch
    复制
    endlocal

    这行代码结束setlocal enabledelayedexpansion开启的局部环境。

  7. 显示设置完成信息

    batch
    复制
    echo 设置完成

    这行代码输出一条提示信息,告诉用户设置已完成。

  8. 重置网络相关配置

    batch
    复制
    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地址。

注意事项

  1. 管理员权限
    这个脚本需要以管理员权限运行,因为
    netshipconfig命令通常需要管理员权限才能执行。

  2. 网络接口名称
    如果网络接口名称中包含空格,可能需要使用引号将接口名称括起来。

  3. 重置操作的影响
    重置网络配置可能会导致网络连接暂时中断,建议在必要时使用。

  4. 日志文件
    netsh int ip reset c:/catalog.txt这行代码将重置IP设置的日志输出到c:/catalog.txt文件中,确保该路径可写。

改进建议

  1. 错误处理
    可以添加错误处理机制,以便在某个命令失败时能够捕获错误并采取相应措施。

  2. 日志记录
    可以将脚本的输出重定向到日志文件中,以便后续查看和调试。

  3. 用户确认
    可以在脚本开始前添加用户确认提示,避免误操作。

示例改进

batch
复制
@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 所有操作已完成。

这个改进版本增加了错误处理和日志输出,使得脚本更加健壮和易于调试。




普通分类: