5

Я хочу создать пакетный скрипт, который будет запускать ось wsdl2java.bat для нескольких WSDL. Когда я создаю пакетный скрипт только с этим кодом:

wsdl2java.bat
wsdl2java.bat

он запустит wsdl2java.bat только один раз. Я думаю, что-то есть с самим пакетным скриптом wsdl2java.bat .

Может кто-нибудь помочь мне выяснить, в чем причина проблемы?

3 ответа3

11

Для совместимости с COMMAND Microsoft, CMD от Microsoft имеет причудливую семантику, согласно которой вызов командного сценария в другом командном сценарии завершает вызывающий командный сценарий в этой точке.

Правильный обходной путь для этого не команда START . Он также не вызывает вспомогательный процесс интерпретатора команд с CMD (особенно ошибочно используя /K для /C ). Это - и было в течение нескольких десятилетий - команда CALL .

call wsdl2java.bat
call wsdl2java.bat
1

Используйте cmd.exe /k filename.bat для запуска каждого пакетного файла.

0

Если я правильно помню, Windows полностью переключается на новый пакетный файл, когда вы запускаете его из другого пакетного файла, и не возвращается.

Обходной путь должен был бы выполнить

start wsdl2java.bat

- опять же, только с макушки головы. Я не смог найти надежного источника в своем коротком исследовании Google.

Обновление: как указал JdeBP, мой старый неправильный путь. Возможно, было слишком очевидно, что я не трогал внутренности MSDOS или CMD-оболочки Windows, или как она называется в эти дни в течение нескольких десятилетий.

Обновление 2: Боже, я сказал "с макушки головы".

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