3

У меня есть следующий пакетный файл:

:RELEASE
for /d %%i in (D:\Projekte\UDG\OSB-Projekte\*) do (
::cd "%%i" & mvn versions:use-latest-versions -Dincludes=de.db.udg.test-framework:component-tester & mvn clean test >> %back%/test.log
)
goto MAKEDECISION
:MAKEDECISION
set /p decision=Do you want to commit?[[c]ommit/[r]evert/[e]xit]

однако cmd немедленно закрывается после цикла.

2 ответа2

2

Мне пришлось использовать команду call для mvn -> cd "%%i" & call mvn versions:use-latest-versions -Dincludes=de.db.udg.test-framework:component-tester & call mvn clean test >> %back%/test.log

1

В этом примере используется команда mvn . На самом деле это не исполняемая программа, а другой пакетный файл с именем mvn.bat (его можно найти в %PATH% вашей системы).

Будь то внутри цикла for или вне цикла, проблема будет одинаковой: при обращении к пакетному файлу управление передается этому пакетному файлу, а текущий останавливается.

Как отметил 0x45 в своем собственном ответе, использование call выполнит подкоманду, а затем вернет управление родительскому процессу, как и ожидалось.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .