批处理获取网络连接名称和设置IP地址

今天帮朋友处理一个电脑问题,于是将忘记多年的批处理捡了回来,写了下面这个修改IP地址的批处理,其实网上有很多,但网络连接的名字不是本地连接就是其他固定名称,这段代码将会先去获取网络连接名称,再进行IP地址设置。

::设置关闭回显和变量延迟
@echo off & setlocal EnableDelayedExpansion
::设置标题文字
title 设置IP地址
::设置背景黑色,字体浅绿色
color 0A

::一开始跳转到初始化操作
goto init


::初始化操作
:init
set value=
set ethernetAdapter=
set ipAddr=
set subMask=
set gateway=
set primaryDNS=8.8.8.8
set spareDNS=114.114.114.114
set defaultSubMask=255.255.255.0

echo 1.自动获取IP地址
echo 2.手动设置IP地址
set /p value=请选择操作:
if !value! == 1 ( 
    goto auto
) else ( 
    if !value! == 2 ( 
        goto static
    ) else ( 
        if !value! == exit (
            exit /b
        ) else (
            goto error
        )
    )
)
:eof


::设置动态获取IP地址
:auto
goto scanEthernetAdapter
:eof


::设置静态IP地址
:static
echo.
set /p ipAddr=请输入IP地址:
set /p subMask=请输入子网掩码(按回车将设为默认255.255.255.0):
set /p gateway=请输入默认网关:
goto scanEthernetAdapter
:eof


::获取网络连接名称
:scanEthernetAdapter
@(for /f "tokens=3*" %%a in ('netsh interface show interface^|more +2') do @echo,%%b)>"d:\network.txt"
set j=0
for /f "tokens=*" %%i in (d:\network.txt) do (
    set /a j+=1
    set con!j!=%%i
    call set ethernetAdapter=%%con!j!%%
    echo !ethernetAdapter!
)

goto setup
pause
:eof


::根据用户所选执行操作
:setup
if !value! == 1 (
    echo.
    echo 正在设置自动获取IP地址...
    netsh interface ip set address name = %ethernetAdapter% source = dhcp
    netsh interface ip set dns name = %ethernetAdapter% source = dhcp
    echo 自动获取IP地址成功!
) else (
    echo.
    echo 正在设置静态IP地址...
    if "%subMask%"=="" (
        echo.
        echo IP地址: %ethernetAdapter% %ipAddr% %defaultSubMask% %gateway%
        netsh interface ip set addr name=%ethernetAdapter% source=static addr=%ipAddr% mask=%defaultSubMask% gateway=%gateway%
    ) else (
        echo.
        echo IP地址: %ethernetAdapter% %ipAddr% %subMask% %gateway%
        netsh interface ip set addr name=%ethernetAdapter% source=static addr=%ipAddr% mask=%subMask% gateway=%gateway%
    )
    echo.
    echo 正在设置首选DNS服务器...
    cmd /c netsh interface ip set dns name=%ethernetAdapter% source=static addr=%primaryDNS% register=PRIMARY validate=no
    echo.
    echo 正在设置备用DNS服务器...
    cmd /c netsh interface ip add dns name=%ethernetAdapter% addr=%spareDNS% validate=no
    echo 设置静态IP地址成功!
)
pause
exit /b
:eof


::用户输入错误
:error
echo.
echo 输入错误,请重新输入
goto init
:eof

将以上代码写入一个bat后缀文件中,再以管理员身份运行即可。
动态获取IP
静态IP

参考:[已解决]批处理如何获取网络接口名称/网络连接名称

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值