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

如何从批量输出文件中提取ICCID的15位数字并去除冗余内容

提取Device Id中的15位ICCID数字(批处理实现)

这里有两种实用的批处理方案,帮你从netsh的输出里提取纯15位ICCID数字,替换掉你原来的脚本即可:

方案一:使用延迟变量扩展移除空格

这个方法通过变量替换直接去除数字前的空格,逻辑清晰:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%a in ('%windir%\sysnative\cmd.exe /c netsh.exe mbn show interfaces ^| find "Device Id"') do (
    set "iccid=%%a"
    rem 移除所有空格(这里仅需移除前导空格,此命令会移除所有空格,不过对纯数字来说不影响)
    set "iccid=!iccid: =!"
    echo !iccid! > C:\Users\Test\Pictures\device.txt
)
endlocal

关键步骤说明:

  • for /f "tokens=2 delims=:":以冒号为分隔符,拆分Device Id: XXXXX这行内容,提取冒号后的部分(也就是带空格的数字)
  • set "iccid=!iccid: =!":通过变量替换语法,把变量里的所有空格替换为空,得到纯数字
  • setlocal enabledelayedexpansion:因为在for循环里修改并读取变量,需要启用延迟变量扩展才能正常生效

方案二:嵌套for循环自动去除前导空格

这个方法不需要启用延迟扩展,利用for /f的tokens=*参数自动忽略前导空格,更简洁:

@echo off
for /f "tokens=2 delims=:" %%a in ('%windir%\sysnative\cmd.exe /c netsh.exe mbn show interfaces ^| find "Device Id"') do (
    for /f "tokens=*" %%b in ("%%a") do (
        echo %%b > C:\Users\Test\Pictures\device.txt
    )
)

关键步骤说明:

  • 第一个for同样提取冒号后的带空格内容
  • 第二个for /f "tokens=*":会自动忽略变量%%a中的所有前导空格,直接输出纯数字部分

两种方案都能完美实现你的需求,把device.txt里的内容从Device Id: 990001234567890变成纯数字990001234567890。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:22:14