You need to enable JavaScript to run this app. 批处理(batch)文本写入:如何为库存结构文本修改键值
优惠活动
大模型
产品
解决方案
定价
更多

批处理(batch)文本写入:如何为库存结构文本修改键值

批处理实现类JSON库存字段修改的方案

实现核心逻辑

你当前存储的是扁平结构的单行类JSON文本(无嵌套、键值对以逗号分隔、末尾带冗余逗号),批处理无直接修改文件片段的能力,统一遵循「读取全量文件内容→逐段匹配目标字段→替换对应值→全量重写覆盖文件」的路径即可,全程不会破坏你原有的存储格式。
这里特意规避了批处理字符串替换通配符的贪婪匹配问题,和你已有的读取逻辑完全适配,多字段场景下不会误改其他库存项。

可直接运行的实现代码

@echo off
setlocal enabledelayedexpansion
chcp 65001 >nul
:: 配置需要修改的目标键名、对应的新值
set "target_key=sword"
set "new_value=old sword"

:: 读取eq.txt的完整内容
set "raw_content="
for /f "delims=" %%a in (eq.txt) do set "raw_content=%%a"
:: 去掉前后的大括号,方便拆分独立键值对
set "raw_content=!raw_content:~1,-1!"

set "new_content={"
:: 逐段拆分每个键值对(和你原有读取逻辑的拆分规则一致,按逗号/空格拆分)
for %%b in (!raw_content!) do (
  :: 跳过末尾冗余逗号拆分出的空分段
  if not "%%b"=="" (
    :: 检查当前分段是否为目标字段
    echo %%b | findstr /c:"^"!target_key!^":" >nul
    if !errorlevel! equ 0 (
      :: 命中目标字段,替换为新值的键值对格式
      set "new_content=!new_content!^"!target_key!^":"!new_value!^","
    ) else (
      :: 非目标字段,保留原内容
      set "new_content=!new_content!%%b,"
    )
  )
)

:: 覆盖写回修改后的内容到eq.txt
echo !new_content!>eq.txt
echo 字段修改完成,当前文件内容:!new_content!

效果验证

  • 初始eq.txt内容:{"sword":"",}
  • 运行代码后自动替换为:{"sword":"old sword",}
  • 多字段场景下兼容:如果原文件为{"sword":"","shield":"wood","gold":"100",},修改sword字段后会保留其他所有项,输出为{"sword":"old sword","shield":"wood","gold":"100",}

注意事项

  • 该方案仅适配你当前的极简扁平类JSON结构,如果后续需要支持嵌套JSON、多行存储格式,建议改用PowerShell处理标准JSON格式
  • 代码开头的chcp 65001用于统一UTF-8编码,避免中文库存名写入时出现乱码
  • 如果新值包含逗号、空格等特殊字符,直接在new_value变量的引号内填写即可,不会影响拆分逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 11:15:00