【问题标题】:using a batch file, searching an ini file within a specific section, then within a specific name= to read a specific value使用批处理文件,在特定部分中搜索 ini 文件,然后在特定 name= 中搜索特定值
【发布时间】:2025-12-18 04:35:01
【问题描述】:

基本上,我已经能够通过执行 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文件的全部内容。无论如何。如果我能弄清楚如何回显 上面的 c:\programdata\zephyr\data。然后我可以用它作为模板继续我的项目。

【问题讨论】:

    标签: batch-file ini


    【解决方案1】:

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

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

    【讨论】:

    • 现在我觉得自己像个白痴.....但是谢谢你,现在已经断断续续地工作了大约 2 周。