如何从 Windows 批处理 (.bat) 文件通过 wsadmin 运行 单个命令

How to run a single command via wsadmin from a Windows batch (.bat) file

我一直在尝试在 Windows 服务器上实现一个批处理文件来执行 wsadmin 命令。

@ECHO OFF
cmd /K "D:\IBM\WebSphere\AppServer\profiles\ctgAppSrv01\bin\wsadmin.bat -lang jython -user wasadmin -password wasadmin && $AdminControl invoke $KCLUSTER rippleStart"

这让我登录到会话中,但没有进入第二部分 $AdminControl 调用 $KCLUSTER rippleStart

下图是批处理文件停止的地方,没有进一步进入 $AdminControl 调用 $KCLUSTER rippleStart 部分。

有没有办法在 Windows 2012 服务器上使用批处理文件或其他方式执行此操作?

在没有运气的情况下搜索了网络,看看这是否发生在死胡同之前。 我试过使用 Call 命令但没有结果。

非常感谢任何关于从这里去哪里的指示

您可以启动 wsadmin 以从 Windows .bat 文件执行单个命令,例如:

@ECHO OFF
cmd /K ""D:\IBM\WebSphere\AppServer\profiles\ctgAppSrv01\bin\wsadmin.bat" -lang jython -c "print AdminControl.invoke(kcluster, 'rippleStart')""

这会在三个方面改变您原来的 post。

  1. 最近的示例和用法使用 Jython,所以我转而使用它。 (您使用 -lang jython 启动 wsadmin,但使用类似 Jacl 的语法 $AdminControl...)。
  2. 我使用 wsadmin ... -c 来传递要执行的命令,而不是 && 语法。
  3. 我使用嵌套引号来分隔命令的元素。

当然,这仅在您先前在脚本或 wsadmin 会话中设置了 kcluster 的情况下才有效。要查看此语法是否有效 "out-of-the-box" 您可以尝试 AdminApp.list() 之类的东西,例如:

@ECHO OFF
cmd /K ""D:\IBM\WebSphere\AppServer\profiles\ctgAppSrv01\bin\wsadmin.bat" -lang jython -c "print AdminApp.list()""