簡體   English   中英

批處理文件從配置文件加載變量,跳過注釋

[英]Batch file loading vars from config file, skip comments

我正在編寫一個腳本來在 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 上)中可以正常工作,但在我的批處理文件(在 Windows 上)中會中斷,因為它試圖為該注釋行執行 SET。

如何跳過批處理文件(在 Windows 上)的FOR循環中以#開頭的那些行?

正如這個答案中提到的和@npocmaka 在這個問題的評論中提到的,您可以使用eol=#有效地忽略以#開頭並轉到行尾的評論。 所以在你的批處理文件中調用for將是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM