Последовательный вызов команд CMD (сценарии WLST Python)
Я знаю, что есть много вопросов относительно последовательного вызова команд оболочки из командного файла. Однако я не могу решить эту специфическую проблему, в основном при вызове сценариев Python для Oracle WebLogic (WLST).
У меня есть командный файл, который на высоком уровне делает эти вещи:
- Копирует некоторые файлы в указанное место
- Запускает сервер Oracle WebLogic
- Вызовы
script1.py
настроить что-то на Admin Server - Вызывает некоторые другие команды оболочки
- Вызовы
script2.py
настроить что-то еще на Admin Server
Фрагмент из файла:
:: set some paths
FOR /F "tokens=1,2 delims==" %%G IN (config.properties) DO (set %%G=%%H)
:: copy files
call copyFiles.bat
:: start the server
start startWebLogic.cmd
:: execute script 1
set _JAVA_OPTIONS="-XX:MaxHeapSize=512m"
%WLST_PATH%\wlst.cmd script-1.py
:: some more DOS commands
:: execute script 2
%WLST_PATH%\wlst.cmd script-2.py
Проблема в шагах 3 и 5. Всякий раз, когда wlst
инициализирует и запускает выполнение, владеет консолью и начинает печатать вывод на консоли. После этого он не будет выполнять следующие команды сценария вообще. Казнь просто останавливается тогда и там. Контроль просто заканчивается внутри %WLST_PATH%
,
В качестве обходного пути я использую start
а также timeout
команды.
:: execute script 1
set _JAVA_OPTIONS="-XX:MaxHeapSize=512m"
start /MIN wlst.cmd %WLST_PATH%\wlst.cmd script-1.py
timeout /t 40 /nobreak
:: some more DOS commands
:: execute script 2
start /MIN wlst.cmd %WLST_PATH%\wlst.cmd script-2.py
timeout /t 40 /nobreak
Я также пытался использовать call
но это не помогло, и это приводит к той же самой проблеме, как упомянуто выше. Есть ли лучший способ сделать это? Я хочу, чтобы все эти команды выполнялись последовательно.
1 ответ
По предложению eryksun, эта проблема была решена с помощью:
cmd /c ""%WLST_PATH%\wlst.cmd" script-1.py"