findstr 行尾正则表达式 ($) 无法按预期工作

问题描述 投票:0回答:0

我正在尝试使用

findstr
在具有 UTF8 编码的 .ini 文件中查找 2 个特定参数及其值,以检查是否进行了更改。

我想使用行尾正则表达式字符

$
。当我尝试使用它时,findstr 不再打印出应该在控制台中匹配的行。

我试过了

findstr /r /c:"^m_nPrioritisedEmitters=1$" "%apb%\APBGame\Config\DefaultGame.ini" && ^
findstr /r /c:"^m_nPrioritisedNPCS=1$" "%apb%\APBGame\Config\DefaultGame.ini"

findstr /x /r /c:"^m_nPrioritisedEmitters=1" "%apb%\APBGame\Config\DefaultGame.ini" && ^
findstr /x /r /c:"^m_nPrioritisedNPCS=1" "%apb%\APBGame\Config\DefaultGame.ini"

以及

findstr /b /r /c:"m_nPrioritisedEmitters=1[^0-9]*" "%apb%\APBGame\Config\DefaultGame.ini" && ^
findstr /b /r /c:"m_nPrioritisedNPCS=1[^0-9]*" "%apb%\APBGame\Config\DefaultGame.ini"

这些变体都不适合我。

我还使用

/i
来排除可能的打字错误(即使我三重检查)也导致没有匹配项。


这是整个代码:

findstr /c:"<AttenuationScaling>0.01</AttenuationScaling>" "%apb%\APBGame\Content\Audio\VehicleAmpLevels.xml" && ^
findstr /c:"Volume=\"0.000000\"" "%apb%\APBGame\Content\Audio\DefaultMusicLibrary\defaultmusiclibrary.xml" && ^
findstr /r /c:"^m_nPrioritisedEmitters=1$" "%apb%\APBGame\Config\DefaultGame.ini" && ^
findstr /r /c:"^m_nPrioritisedNPCS=1$" "%apb%\APBGame\Config\DefaultGame.ini"
if not errorlevel 1 (
    set "sfx=(+)"
    set "sfx01=uninstall"
    exit /b
) 
set "sfx01=install"
exit /b

有人知道为什么会这样吗?

编辑:

这是 VehicleAmpLevels.xml 文件。 This 是默认的 musiclibrary.xml 文件。 是DefaultGame.ini文件。

regex batch-file cmd findstr end-of-line
© www.soinside.com 2019 - 2024. All rights reserved.