使用批处理文件,在特定部分内搜索 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
基本上我已经能够通过执行 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