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

时间:2015-06-01 18:13:47

标签: batch-file ini

基本上我已经能够通过执行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" file并获取SQLiteHome =

的值

以下是默认 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。

一直在谷歌搜索,我有不同的结果(其中一个包括用#34替换ini文件的全部内容; SQLiteHome"无论如何。如果我能搞清楚如何只需回显上面的c:\ programdata \ zephyr \ data。然后我可以用它作为模板来继续我的项目。

1 个答案:

答案 0 :(得分:2)

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

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