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

批处理中如何从类JSON格式的环境变量字符串提取PLMN值

批处理提取PLMN值的正确方法

原命令错误原因

你之前的命令直接把!hotainfo!的内容放到for /f的命令执行块里,系统会把字符串里的(bootloader)、OKAY这些内容当成命令去执行,这必然导致批处理崩溃退出。正确的做法是先把变量内容输出,再传递给findstr处理。

解决步骤

首先确保批处理开头已经开启延迟变量扩展:

setlocal enabledelayedexpansion

方法一:分步提取

  1. 先过滤出包含PLMN的片段:
for /f "tokens=2 delims=:" %%i in ('echo !hotainfo! ^| findstr /r /c:"PLMN"') do set "plmn_raw=%%i"

这里的^|是管道符的转义写法,必须添加,否则for会解析错误。

  1. 从提取到的片段中分离出PLMN的数值部分:
for /f tokens^=2^ delims^=^" %%j in ("!plmn_raw!") do (
    for /f %%k in ("%%j") do set "plmn=%%k"
)
  • 第一个内层for用双引号做分隔符,取出"22 (bootloader) 210"里的22 (bootloader) 210
  • 第二个内层for默认用空格做分隔符,取出第一个值22

方法二:合并为单条命令

把两步合并到一起,减少中间变量:

for /f "tokens=2 delims=:" %%i in ('echo !hotainfo! ^| findstr /r /c:"PLMN"') do (
    for /f tokens^=2^ delims^=^" %%j in ("%%i") do (
        for /f %%k in ("%%j") do set "plmn=%%k"
    )
)

验证结果

执行完上述命令后,你可以用echo !plmn!查看结果,输出应为22。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 03:13:24