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

求助:尝试用Batch修改exe.conf指定key的value失败,求解决方案

Batch 修改 exe.conf 中指定配置项的 Value 值方案

原代码存在的问题

  • 错误使用findstr /v:该命令是删除匹配行,而非替换行内内容
  • 配置项Key不匹配:目标是FileName,但代码中写的是row_process
  • 变量与引号处理混乱:延迟扩展用法错误,引号嵌套导致语法异常
  • 文件路径不一致:读取的是test.exe.conf,但最终替换的是fileName.conf

正确的Batch脚本

@echo off
setlocal enabledelayedexpansion

:: 设置新的value值,不需要额外加单引号
set "newValue=20221008.txt"
:: 源文件路径
set "sourceFile=test.exe.conf"
:: 临时输出文件
set "tempFile=test.exe.conf.tmp"

:: 清空临时文件(如果存在)
if exist "%tempFile%" del "%tempFile%"

:: 逐行处理源文件
for /f "delims=" %%a in ('type "%sourceFile%"') do (
    set "line=%%a"
    :: 判断当前行是否是目标配置项
    echo !line! | findstr /c:"key=\"FileName\"" >nul
    if !errorlevel! equ 0 (
        :: 替换value部分:先截取key="FileName"之后的内容,再替换第一个value值
        set "newLine=!line:value="=value="%newValue%"!"
        echo !newLine! >> "%tempFile%"
    ) else (
        :: 非目标行直接写入临时文件
        echo !line! >> "%tempFile%"
    )
)

:: 替换原文件
move /y "%tempFile%" "%sourceFile%" >nul

endlocal
echo 配置项修改完成

脚本说明

  • @echo off:关闭命令行回显,让输出更干净
  • setlocal enabledelayedexpansion:启用延迟扩展,确保循环内变量能正常更新
  • 变量定义:明确源文件、临时文件和新的value值,方便后续修改
  • 逐行处理:通过for /f读取文件每一行,判断是否为目标配置项
  • 替换逻辑:使用字符串替换语法!line:old=new!,精准替换目标行的value属性值
  • 替换原文件:用临时文件覆盖原文件,避免修改过程中损坏源文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 00:24:25