[英]Batch and the for loop
我有一個.cmd文件啟動的java應用程序。 我想通過這個批處理設置應用程序的類路徑,所有需要的jar都進入lib文件夾。
這是我嘗試過的:
set _classpath=.
for %%i in (%1/lib/*.*) do ( set _classpath=%_classpath%;%%i )
令人驚訝的是,它似乎沒有像預期的那樣發揮作用。 假設lib文件夾中有3個jar:
這是發生的事情:
顯然,我希望得到的是
任何的想法 ?
感謝致敬,
將其放在批處理文件的頂部:
setlocal enabledelayedexpansion
然后在for循環中,用!_classpath!
替換%_classpath%
!_classpath!
如果未啟用延遲擴展, %_classpath%
將在for循環開始時展開一次。
[編輯]在回復評論時,這是一個完整的代碼清單
@echo off
setlocal enabledelayedexpansion
set _classpath=.
for %%i in (%1/lib/*.*) do (
set _classpath=!_classpath!;%%i
)
echo %_classpath%
pause
CMD.EXE
在運行循環之前擴展%...%
。
你需要延遲變量擴展,這在set /?
有解釋set /?
從命令提示符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.