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

时间:2017-08-10 05:48:09

标签: python batch-file cmd wlst

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

我有一个批处理文件,它在高级别上执行以下操作:

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

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

1 个答案:

答案 0 :(得分:0)

根据 eryksun 的建议,使用以下方法解决了此问题:

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