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

如何用批处理脚本清空config.json中user1对应的password字段

仅修改config.json中user1对应的password字段为空值的批处理方案

批处理本身不是专门处理JSON的工具,但可以通过标记上下文的方式实现只修改user1对应的password字段,以下是针对你需求的脚本:

@echo off
setlocal enabledelayedexpansion

:: 标记是否进入user1的配置块,0=未进入,1=已进入
set "inUser1Block=0"
:: 临时存储修改后的内容
set "tempFile=temp_config.json"

:: 逐行读取原JSON文件
for /f "delims=" %%a in (config.json) do (
    set "currentLine=%%a"
    :: 检查当前行是否是user1的定义行
    echo !currentLine! | findstr /c:"\"user\": \"user1\"" >nul
    if !errorlevel! equ 0 (
        set "inUser1Block=1"
        :: 直接输出该行到临时文件
        echo !currentLine! >> !tempFile!
    ) else (
        :: 如果已经进入user1的配置块,检查是否是password行
        if !inUser1Block! equ 1 (
            echo !currentLine! | findstr /c:"\"password\":" >nul
            if !errorlevel! equ 0 (
                :: 将password设为空值后输出
                echo    "password": "" >> !tempFile!
                :: 重置标记,避免修改其他用户的password
                set "inUser1Block=0"
            ) else (
                :: 不是password行,直接输出
                echo !currentLine! >> !tempFile!
            )
        ) else (
            :: 未进入user1的配置块,直接输出原行
            echo !currentLine! >> !tempFile!
        )
    )
)

:: 用临时文件替换原文件(/y参数自动覆盖)
move /y !tempFile! config.json >nul

echo 操作完成:仅user1对应的password字段已设为空值
endlocal

脚本说明(针对新手)

  1. 延迟扩展:setlocal enabledelayedexpansion是为了在for循环里能动态修改变量值,否则循环内的变量不会实时更新。
  2. 上下文标记:用inUser1Block变量记录是否找到了user1的配置块,只有在标记为1时,才会处理后续的password字段。
  3. 逐行处理:通过for /f逐行读取原文件,用findstr匹配目标行,找到后修改内容输出到临时文件。
  4. 文件替换:最后用临时文件覆盖原文件,完成修改。

注意事项

  • 脚本依赖你提供的JSON格式:user字段必须在password字段之前,且行内的引号、空格格式要和示例一致。如果JSON格式有调整,可能需要修改findstr的匹配字符串。
  • 运行前建议先备份config.json,避免意外情况导致文件损坏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:45:40