我正在尝试使用
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文件。