Пакет и цикл for
У меня есть приложение java, запущенное a .файл cmd. Я хочу установить путь к классам приложения через этот пакет, все необходимые банки находятся в папке lib.
вот что я пробовал :
set _classpath=.
for %%i in (%1/lib/*.*) do ( set _classpath=%_classpath%;%%i )
Удивительно, но кажется, что он не действует так, как ожидалось. Допустим, в папке lib есть 3 jar:
- Пикачу.Джар
- Соник.Джар
- Марио.Джар
вот что происходит :
- set _classpath=.
- set _classpath=.Пикачу.Джар
- set _classpath=.;звуковой.Джар
- set _classpath=.;Марио.Джар
очевидно, что я ищу, чтобы получить
- установить _путь класса.=Пикачу.jar; sonic.банку;Марио.Джар
есть идеи ?
спасибо и с уважением,
2 ответов
поместите это в верхней части пакетного файла:
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 /?
из командной строки.