首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动将当前动态IP地址设置为静态- Windows .bat

自动将当前动态IP地址设置为静态- Windows .bat
EN

Stack Overflow用户
提问于 2022-05-09 08:49:40
回答 1查看 383关注 0票数 0

我需要配置多台机器,以自动设置他们的IP地址从动态到静态。

我有一个批处理文件将IP地址设置为静态的,如下所示:

代码语言:javascript
复制
netsh interface ipv4 set address name="Ethernet" source=static ^
addr=192.168.200.200 mask=255.255.255.0 gateway=192.168.200.1
pause
exit /b 0

但我必须手动在.bat文件中写入IP地址、掩码和网关。

如何检索机器的当前IP地址(以及当前的掩码和网关)并自动将其设置为静态,而无需每次修改.bat文件?

EN

回答 1

Stack Overflow用户

发布于 2022-05-09 15:18:28

首先,您需要检索当前ip地址。

如果您对接口始终使用相同的名称,这可能很容易。

代码语言:javascript
复制
    setlocal
    set "interface_name=Ethernet"
    REM *** Convert the output lines from netsh into variables
    for /F "tokens=1,* delims=:" %%a in ('"netsh interface ipv4 show addresses name="%interface_name%""') do (
        REM *** Get rid of leaing spaces and TABS
        for /F %%a in ("%%a") DO for /F %%b in ("%%b") DO (
          set "__%%a=%%b"
        )
    )
    REM *** Show all variables beginning with "__"
    set __
    
    if "%__DHCP%" NEQ "Yes" goto :no_dhcp

    :check_ip_prefix
    set "ip_addr=%__IP-address%"
    if "%ip_addr:192.168.=%" EQU "%ip_addr%" goto :wrong_ip_prefix
    
    netsh interface ipv4 set address name="%interface_name%" source=static ^
addr=%ip_addr% mask=255.255.255.0 gateway=%__default_gateway%

您可能需要更改一些变量名称,因为名称与语言有关(我使用的是德语版本)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72169265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档