【问题标题】:Exit WLST and continue execution of batch file退出 WLST 并继续执行批处理文件
【发布时间】:2016-05-21 03:37:56
【问题描述】:

我有一个用于安装 weblogic 的批处理文件,在安装过程中它会调用 wlst 来运行一些 jython 脚本。

执行运行良好,但只是没有退出 wlst 并继续执行 bat 文件的其余部分。

这是我在 bat 文件中调用 wlst 的地方。

echo ... Setting Path for WLST
start /wait /B %middleware%\wlserver\server\bin\setWLSEnv.cmd > /nul 2>&1

echo ... Executing WLST to create domains
%middleware%\oracle_common\common\bin\wlst.cmd %current_dir%\createdomain.py 

在 py 脚本中,exit() 被调用,我卡在这个消息提示符下,之后没有任何反应。

Exiting Weblogic Scripting Tool 

有什么想法吗?

【问题讨论】:

    标签: python batch-file weblogic jython wlst


    【解决方案1】:

    您应该像这样使用命令 CALL 调用wlst.cmd 命令脚本:

    call "%middleware%\oracle_common\common\bin\wlst.cmd" "%current_dir%\createdomain.py"
    

    setWlsEnv.cmd 也是如此。您不应使用 START 命令启动它,因为这会在不同的命令进程中运行命令脚本。

    不对是:

    start /wait /B %middleware%\wlserver\server\bin\setWLSEnv.cmd > /nul 2>&1
    

    正确的是:

    call "%middleware%\wlserver\server\bin\setWLSEnv.cmd" >nul 2>&1
    

    请注意已将/ 删除到nul

    最后一件事,不需要在wlst.cmd 之前调用setWLSEnv.cmd,因为wlst.cmd 自己会这样做。

    【讨论】:

    • 嘿,这行得通。谢谢!无论如何要从执行 py 脚本中打印堆栈信息?
    • 你的意思是当python代码失败并抛出异常时打印堆栈跟踪?
    • 是的,我只能使用 start /wait 命令做到这一点,找不到任何关于 call 的信息。
    • 你可以试试这样的:import sys, traceback try ... except: traceback.print_exc(file=sys.stdout)
    猜你喜欢
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多