You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows批处理中提取IP地址的4个八位组

别担心英文表述的问题,我来帮你搞定Windows批处理里提取IPv4纯地址的需求!你的核心目标是把设备信息按指定格式写入文件,关键就是从ipconfig的输出里剥离出仅包含四个八位组的IP地址,对吧?

先看你原来的脚本,ipconfig | find /i "IPv4"会输出类似 IPv4 Address. . . . . . . . . . . : 10.138.53.150这样的整行内容,我们需要用for /f命令来解析这行文本,提取出后面的纯IP。

下面是修改后的完整脚本,已经帮你整合了所有需求:

@echo off
setlocal enabledelayedexpansion

:: 初始化变量,防止找不到IP/MAC时显示空值
set "IP_ADDR=Not found"
set "MAC_ADDR=Not found"

:: 提取第一个IPv4地址(多网卡环境下取第一个,若要全部可去掉goto)
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| find /i "IPv4 Address"') do (
    set "IP_ADDR=%%a"
    rem 移除IP地址前面的所有空格
    set "IP_ADDR=!IP_ADDR: =!"
    goto :get_ip_done
)
:get_ip_done

:: 提取第一个MAC地址(根据实际MAC格式调整匹配规则,这里找带"-"的MAC行)
for /f "tokens=1 delims= " %%b in ('getmac ^| find /i "-"') do (
    set "MAC_ADDR=%%b"
    goto :get_mac_done
)
:get_mac_done

:: 控制台输出设备信息
echo ===========================================
echo = EQUIPMENT CONFIGURATION =
echo ===========================================
echo.
echo Today's date: %date%
echo.
echo Computer Name: %computername%
echo.
echo IP Address: %IP_ADDR%
echo.
echo MAC Address: %MAC_ADDR%
echo.

:: 按你需要的格式写入共享文件夹的文本文件
echo DATE: %date% HOUR : %time% COMPUTER NAME : %computername% IP : %IP_ADDR% MAC : %MAC_ADDR% >> \\10.138.50.215\test\txtinfo.txt

echo.
echo Press the "SPACE" key to close this window ...
pause>nul

endlocal

关键部分说明:

  • 延迟变量扩展:开头的setlocal enabledelayedexpansion是必须的,因为在for循环里修改变量后,需要用!变量名!的方式才能立即读取到更新后的值。
  • IP提取逻辑:for /f "tokens=2 delims=:"以冒号为分隔符,取ipconfig输出行的第二部分(也就是冒号后面的内容),再用set "IP_ADDR=!IP_ADDR: =!"去掉IP前面的多余空格,得到纯八位组格式的IP。
  • MAC提取逻辑:用getmac命令输出MAC列表,通过find /i "-"匹配标准MAC格式的行,同样用for /f提取出纯MAC地址。
  • 避免多网卡干扰:用goto跳转到循环外,确保只提取第一个找到的IP/MAC,如果你需要收集所有网卡的信息,可以去掉对应的goto语句。

这样修改后,写入文件的内容就会完全符合你想要的格式啦!

内容的提问来源于stack exchange,提问作者Blitzinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:01:57