Последовательный вызов команд CMD (сценарии WLST Python)

Я знаю, что есть много вопросов относительно последовательного вызова команд оболочки из командного файла. Однако я не могу решить эту специфическую проблему, в основном при вызове сценариев Python для Oracle WebLogic (WLST).

У меня есть командный файл, который на высоком уровне делает эти вещи:

  1. Копирует некоторые файлы в указанное место
  2. Запускает сервер Oracle WebLogic
  3. Вызовы script1.py настроить что-то на Admin Server
  4. Вызывает некоторые другие команды оболочки
  5. Вызовы 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"
Другие вопросы по тегам