使用批处理文件,在特定部分内搜索 ini 文件,然后在特定名称=内搜索特定值

using a batch file, searching an ini file within a specific section, then within a specific name= to read a specific value

基本上我已经能够通过执行 REG 查询(使用应用程序的所有可能的注册表项)来获取 ini 文件以发现位置,然后将目录设置为变量

for /f "tokens=2*" %%a in ('REG Query "HKCU\SOFTWARE\Zephyr Associates, Inc." /v StyleDir') do set "StyleDir=%%~b"
echo=%StyleDir%
for /f "tokens=2*" %%a in ('REG Query "HKLM\SOFTWARE\Zephyr Associates, Inc." /v StyleDir') do set "StyleDir=%%~b"
echo=%StyleDir%
cd %StyleDir%

下一部分是我想搜索 "Style.ini" 文件并获取 SQLiteHome=

的值的地方

这是 Default Style.ini 的前几行:

    [Default]
    DataHome=C:\ProgramData\Zephyr\Data
    SQLiteHome=c:\programdata\zephyr\data
    [DataBaseList]
    DbsId=Stl,Ind,Fnd,Set,Isa,Zin,Mng

所以在这种情况下,我想设置一个变量成为(SQLiteHome的值),c:\programdata\zephyr\data.

到处搜索,我得到了不同的结果(其中之一包括用 "SQLiteHome" 替换 ini 文件的全部内容。无论如何。如果我能弄清楚如何echo 上面的 c:\programdata\zephyr\data。然后我可以用它作为模板继续我的项目。

使用 findstr 从 ini 中选择正确的行,然后 for /f 解析它,类似于您对 REG 所做的。

for /f "tokens=2 delims==" %%a in ('findstr SQLiteHome style.ini') do set SQLiteHome=%%a