【发布时间】:2015-09-13 18:13:06
【问题描述】:
所以,我一直在处理一个批处理文件来收集特定的系统信息,但在打开网络安装上的 INI 文件时遇到了障碍。所以获取路径是:
for /f "tokens=2*" %%a in ('REG Query "HKCU\SOFTWARE\Zephyr Associates, Inc." /v StyleDir 2^>nul') do set "StyleDir=%%~b"
for /f "tokens=2*" %%a in ('REG Query "HKLM\SOFTWARE\Zephyr Associates, Inc." /v StyleDir 2^>nul') do set "StyleDir=%%~b"
for /f "tokens=2*" %%a in ('REG Query "HKLM\SOFTWARE\Wow6432Node\Zephyr Associates, Inc." /v StyleDir 2^>nul') do set "StyleDir=%%~b"
cd %StyleDir%
所以在这种情况下,假设 %StyleDir% 是 //Server/StyleDir/
稍后在脚本中,我们读取 Style.ini 文件,其中包含以下内容:
for /f "tokens=2 delims==" %%a in ('findstr SQLiteHome style.ini') do set SQLiteHome=%%a
for /f "tokens=2 delims==" %%a in ('findstr Server style.ini') do set SQL=%%a
for /f "tokens=2 delims==" %%a in ('findstr DataHome style.ini') do set DataHome=%%a
此时我收到一条错误消息,提示我们无法读取 Style.ini。在 Style.ini 中,我有以下内容:
[Default]
DataHome=C:\ProgramData\Zephyr\Data\
SQLiteHome=C:\ProgramData\Zephyr\Data\
[DataBaseList]
Tons of other lines I don't need to read Right now....
稍后我会填充一个记录信息的 txt 文件。该脚本如下:
::Output
echo StyleDir: %StyleDir% >> SystemInformation.txt
echo SQLiteHome: %SQLiteHome% >> SystemInformation.txt
echo SQL Server: %SQL% >> SystemInformation.txt
echo DataHome: %DataHome% >> SystemInformation.txt
那么有没有一种特殊的方法可以让我从 INI 文件中记录这些信息?我曾想过临时映射一个网络驱动器,但问题是知道哪些网络驱动器已经映射,这样我就不会破坏已经存在的东西。我什至不能 100% 确定这是否与 UNC 路径有关,我只知道当 INI 在本地 C:\ 上时可以读取,但在网络上则不能。有什么尝试的建议吗?
我注意到的另一件事是,无论位置如何,我都可以从批处理文件中打开 Style.ini。我只是因为某种原因无法阅读。
【问题讨论】:
标签: batch-file ini unc