我目前有一個批處理文件,它接收一些參數並將它們作爲變量傳遞給配置文件。其中一個參數是日誌文件的路徑。如何接受逗號分隔列表作爲windows批處理文件中的一個參數
配置文件接受來自批處理文件中的變量如下:
path => "${LOGFILE}"
如果我直接將被接受作爲在配置文件中指定的路徑如下:
path => [ "/dir1/dir2/*.log", "/dir3/dir4/*.log"
以下是參數「-logfile」的批處理代碼,其回顯爲%LOGFILE%:
IF "%~1"=="-logfile" (
IF NOT EXIST "%~2" (
echo "**********************"
echo "ERROR: Log file %~2 does not exist. Exiting"
goto exit
) ELSE (
::
:: Convert to unix format... that's what logstash expects
::
set LOGTEMP=%~2
set LOGFILE=!LOGTEMP:\=/!
我的目標是能夠像
my_batfile -logfile /dir1/dir2/*.log, /dir3/dir4/*.log -nextarg blahblahblah
鍵入命令現在,當我嘗試這一點,該批處理文件識別逗號分隔和路徑。
我希望我已經說得夠清楚了,對於任何混淆抱歉。
編輯
通過批處理文件會識別路徑作爲一個字符串的路徑周圍的報價。但是,現在它是一個字符串,它不能驗證這些路徑是否存在,因此會產生錯誤。
我想現在我需要做的是能夠遍歷每個路徑的列表,但將它們作爲一個變量傳遞給配置文件。這條路上的另一個顛簸是路徑的數量可能並不總是相同的。
如果任何人有任何建議,以不同的方式來達到這個目標,將不勝感激!
謝謝你的幫助! - 米蘭達
一種方法是添加它們沒有''然後只是建立在批處理文件中加入'聯接%〜2'和'%〜3'以逗號分隔。 –
你也試過用引號括住路徑嗎? 'my_batfile -logfile「/dir1/dir2/*.log,/dir3/dir4/*.log」-nextarg blahblahblah' –
因此,我嘗試使用引號,我認爲它完成了我最初所要求的,所以謝謝!:)但現在我出現了一個新的錯誤。我會將其添加到我原來的帖子中。 –