使用批处理文件更改 cfg 文件中的一行

Changing a line in a cfg file with a batch file

我正在 Windows,尝试使用以下批处理文件:

@echo off &setlocal
set "search=false); // disable U"
set "replace=true); // disable U"
set "textfile=C:\Program Files (x86)\Mozilla Firefox\mozilla.cfg"
call jrepl.bat "%search%" "%replace%" /f "%textfile%" /o -
pause

更改配置文件中的一行。当我 运行 文件时,它说

'jrepl.bat' is not recognized as an internal or external command.

我的批处理文件和jrepl.bat都保存到了桌面。我怎样才能让我的批次找到 jrepl?

使用此批处理文件代码独立于执行批处理文件时的当前目录:

@echo off
if not exist "%~dp0jrepl.bat" goto :EOF
if not exist "%ProgramFiles(x86)%\Mozilla Firefox\mozilla.cfg" goto :EOF

call "%~dp0jrepl.bat" "search=false\); // disable U" "search=true); // disable U" /F "%ProgramFiles(x86)%\Mozilla Firefox\mozilla.cfg" /O -

请参阅 上的答案以及那里引用的答案,以详细了解为什么 Windows 命令处理器在 运行 批处理文件上找不到 jrepl.bat 作为管理员获取对 Mozilla Firefox 程序文件文件夹中文件的写入权限。

) 在正则表达式中有特殊含义搜索字符串。它必须用反斜杠转义才能在搜索字符串中被解释为文字字符。 ) 在正则表达式 replace string 没有 特殊含义,因此无需在 replace string 中对其进行转义。