按顺序调用 CMD 命令(WLST Python 脚本)

Calling CMD commands sequentially (WLST Python Scripts)

我知道有很多关于从批处理文件中顺序调用 shell 命令的问题。但是,我无法解决这个特殊问题,主要是在调用 Oracle WebLogic (WLST) Python 脚本时。

我有一个批处理文件,它在高层次上做了这些事情:

  1. 将一些文件复制到指定位置
  2. 启动 Oracle WebLogic 服务器
  3. 调用 script1.py 在管理服务器上配置一些东西
  4. 调用一些其他 shell 命令
  5. 调用 script2.py 在管理服务器上配置其他内容

文件中的片段:

:: 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%.

内结束

作为解决方法,我正在使用 starttimeout 命令。

:: 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 但它没有帮助,它导致与上述相同的问题。有更好的方法吗?我想要的是所有这些命令都应该按顺序执行。

根据 eryksun 的建议,此问题已通过使用解决:

cmd /c ""%WLST_PATH%\wlst.cmd" script-1.py"