[英]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.