按顺序调用 CMD 命令(WLST Python 脚本)
Calling CMD commands sequentially (WLST Python Scripts)
我知道有很多关于从批处理文件中顺序调用 shell 命令的问题。但是,我无法解决这个特殊问题,主要是在调用 Oracle WebLogic (WLST) Python 脚本时。
我有一个批处理文件,它在高层次上做了这些事情:
- 将一些文件复制到指定位置
- 启动 Oracle WebLogic 服务器
- 调用
script1.py
在管理服务器上配置一些东西
- 调用一些其他 shell 命令
- 调用
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
但它没有帮助,它导致与上述相同的问题。有更好的方法吗?我想要的是所有这些命令都应该按顺序执行。
根据 eryksun 的建议,此问题已通过使用解决:
cmd /c ""%WLST_PATH%\wlst.cmd" script-1.py"
我知道有很多关于从批处理文件中顺序调用 shell 命令的问题。但是,我无法解决这个特殊问题,主要是在调用 Oracle WebLogic (WLST) Python 脚本时。
我有一个批处理文件,它在高层次上做了这些事情:
- 将一些文件复制到指定位置
- 启动 Oracle WebLogic 服务器
- 调用
script1.py
在管理服务器上配置一些东西 - 调用一些其他 shell 命令
- 调用
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
但它没有帮助,它导致与上述相同的问题。有更好的方法吗?我想要的是所有这些命令都应该按顺序执行。
根据 eryksun 的建议,此问题已通过使用解决:
cmd /c ""%WLST_PATH%\wlst.cmd" script-1.py"