具有配置文件(键值对)的批处理文件引发错误

时间:2018-07-12 21:37:39

标签: batch-file

我正在尝试使用配置文件来设置一些批处理脚本将使用的变量。

因此配置文件如下:

CUSTOM_JAVA_HOME="C:/.../Desktop/jre1.8.0_171"
JAVA_FLAGS="-server -Xmx2048M"

在我的批处理文件中,我有以下内容:

rem load config
if exist cmd.config for /f "delims=" %%A IN (cmd.config) DO (SET "%%A")

运行它时,出现以下错误:

  

'“”'不被识别为内部或外部命令,可操作程序或批处理文件。

仔细查看会发现已设置变量JAVA_FLAGS。我不明白失败的原因。

1 个答案:

答案 0 :(得分:0)

我的最佳实践一直是不给变量加上引号。从本质上讲,这就是为什么您得到错误的原因。您将引号分配给变量,然后将这些变量的使用引号引起来。因此最终看到变量为""C:/.../Desktop/jre1.8.0_171""。使用您现有的代码,您只需删除%%A周围的引号,但是我的最佳实践一直是不为变量分配引号,而是在其他命令需要它们时使用引号。

配置

CUSTOM_JAVA_HOME=C:/.../Desktop/jre1.8.0_171
JAVA_FLAGS=-server -Xmx2048M

BATCH

rem load config
if exist cmd.config for /f "eol=# delims=" %%A IN (cmd.config) DO (SET "%%A")