【发布时间】:2015-05-22 11:32:11
【问题描述】:
我有一个很长的 test.properties 文件,最上面包含以下内容:
property1=cheese
property2=apple
property3=bread
# many more properties
我可以通过将工作目录更改为包含 test.properties 的目录并运行以下命令,从命令行读取这些属性:
> FOR /F "tokens=1,2 delims==" %A IN (test.properties) DO
IF "%A"=="property1" SET firstitem=%B
> FOR /F "tokens=1,2 delims==" %A IN (test.properties) DO
IF "%A"=="property2" SET seconditem=%B
> echo %firstitem%
cheese
> echo %seconditem%
apple
但是,当我尝试将此代码放入存储在同一目录中的批处理文件中时,它失败了,我无法弄清楚原因:
FOR /F "tokens=1,2 delims==" %A IN ("%~dp0\test.properties") DO
(IF "%A"=="property1" SET firstitem=%B)
FOR /F "tokens=1,2 delims==" %A IN ("%~dp0\test.properties") DO
(IF "%A"=="property2" SET seconditem=%B)
从命令行运行批处理文件给了我这个:
> "C:\folder\testbatch.bat"
~dp0\test.properties") DO IF "B was unexpected at this time.
如何使用批处理文件读取属性,以便将它们存储在可用于脚本其余部分的变量中?
编辑:问题已解决;工作代码如下。
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%~dp0\test.properties") DO
(IF "%%A"=="property1" SET firstitem=%%B)
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%~dp0\test.properties") DO
(IF "%%A"=="property2" SET seconditem=%%B)
【问题讨论】:
标签: batch-file properties-file