从配置文件中批量加载文件,跳过注释

时间:2018-07-13 12:05:38

标签: batch-file

我正在编写一个脚本来在Windows和Linux上启动Java程序。它需要使用配置文件,因为我将同时拥有批处理文件(在Windows上)和shell脚本(在Linux上)。

配置文件(cmd.config):

CUSTOM_JAVA_HOME=""
JAVA_FLAGS="-server -Xmx2048M"

在我的批处理文件中,我像这样加载它:

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

在我的shell脚本中,我只使用:

if [ -f "cmd.config" ]; then
    . "./cmd.config"
fi

现在,我想以shell格式向文件添加注释,如下所示:

# Set a custom java home with no trailing slash. Example: /home/javahome or C:\javahome
CUSTOM_JAVA_HOME=""
JAVA_FLAGS="-server -Xmx2048M"

这在我的shell脚本中(在Linux上)可以很好地工作,但是在它试图为该注释行设置SET时,在我的批处理文件中(在Windows中)中断了。

如何在批处理文件(在Windows中)的#循环中跳过以FOR开头的行?

1 个答案:

答案 0 :(得分:1)

this answer中所述,@ npocmaka在对该问题的注释中提到,您可以使用eol=#有效地忽略以#开头并转到末尾的注释。线。因此,对您的批处理文件中的for的调用将是:

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