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

Windows下.cmd脚本使用jq删除嵌套JSON指定键的问题求助

在Windows CMD中用jq删除JSON指定键的正确命令

核心注意事项

CMD的命令行解析规则和jq语法存在冲突,尤其是引号和特殊字符的处理——必须用双引号包裹jq的过滤表达式,避免CMD误解析内部语法。

1. 删除单个顶级键

以删除顶级键alternate_error_pages为例,命令如下:

jq-win64.exe "del(.alternate_error_pages)" input.json > temp.json && move /Y temp.json input.json
  • 说明:del()是jq的键删除函数,.alternate_error_pages指向目标顶级键;先输出到临时文件再替换原文件,防止直接重定向清空原文件。

2. 删除嵌套键

以删除.browser.app_window_placement.DevToolsApp为例,命令如下:

jq-win64.exe "del(.browser.app_window_placement.DevToolsApp)" input.json > temp.json && move /Y temp.json input.json
  • 说明:嵌套路径直接用.连接层级即可,jq会自动解析;同样用双引号包裹表达式,避免CMD干扰。

3. 一次性删除多个键

同时删除alternate_error_pages、autocomplete和嵌套的DevToolsApp,可在del()中用逗号分隔多个路径:

jq-win64.exe "del(.alternate_error_pages, .autocomplete, .browser.app_window_placement.DevToolsApp)" input.json > temp.json && move /Y temp.json input.json

常见错误排查

  • del语法错误:大概率是没给jq表达式加双引号,CMD把del当成了自身的文件删除命令,导致冲突。必须确保jq过滤逻辑被双引号完全包裹。
  • 路径表达式无效:检查键名和层级是否准确;如果键名含特殊字符(空格、-等),改用["键名"]形式,比如del(.browser["app_window_placement"]["DevToolsApp"])。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 18:23:19