我知道,围绕着从批处理文件顺序调用shell命令存在许多问题。但是,我无法解决这个特殊的问题,主要是在调用Oracle ( WebLogic )脚本时。
我有一个批处理文件,在很高的级别上可以这样做:
script1.py在管理服务器上配置某些内容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%中结束。
作为解决办法,我正在使用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,但是它没有帮助,它导致了与上面提到的相同的问题。有更好的方法吗?我想要的是,所有这些命令都应该按顺序执行。
发布于 2017-08-30 05:36:32
正如eryksun所建议的那样,通过以下方法解决了这个问题:
cmd /c ""%WLST_PATH%\wlst.cmd" script-1.py"https://stackoverflow.com/questions/45605411
复制相似问题