我正在编写一个脚本来在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
开头的行?
答案 0 :(得分:1)
如this answer中所述,@ npocmaka在对该问题的注释中提到,您可以使用eol=#
有效地忽略以#
开头并转到末尾的注释。线。因此,对您的批处理文件中的for
的调用将是:
if exist cmd.config for /F "eol=# delims=" %%A IN (cmd.config) DO SET %%A