Мне запустил JAVA-приложение .cmd файл. Я хочу установить путь к классу приложения через этот пакет, все необходимые банки в папку lib.
Вот то, что я попробовал:
set _classpath=.
for %%i in (%1/lib/*.*) do ( set _classpath=%_classpath%;%%i )
Удивительно, кажется, что это не действует как ожидалось. Скажем, в папке lib существует 3 банки:
Вот то, что происходит:
Очевидно, то, что я надеюсь получать,
Какая-либо идея?
Спасибо и всего наилучшего,
Поместите это в начало вашего командного файла:
setlocal enabledelayedexpansion
Затем в цикле for замените % _ classpath%
на ! _ Classpath!
Без включения отложенного расширения % _ classpath%
раскрывается один раз в начале цикла for.
[Edit] Вот полный код в ответ на комментарий - листинг
@echo off
setlocal enabledelayedexpansion
set _classpath=.
for %%i in (%1/lib/*.*) do (
set _classpath=!_classpath!;%%i
)
echo %_classpath%
pause
CMD.EXE
расширяет %...%
перед выполнением цикла.
Вам нужно отложенное расширение переменной, это объясняется в set /?
из командной строки.