win_shell / win_command不返回批处理返回码

时间:2019-07-19 12:40:49

标签: windows cmd jboss ansible command-line-interface

我想从被调用的批处理文件中获取正确的返回码,以便如果批处理调用失败,我的Ansible任务也会失败。

这似乎是不可能的。直接在CMD中执行给定命令有效,%errorlevel%为!=0。在Ansible rc中执行该命令始终为“ 0”-除非找不到该命令的可执行文件...

有什么主意吗?

- name: undeploy ...
  win_shell: "set nopause=true && F:/xyz/wildfly-8.2.0.Final/bin/jboss-cli.bat --connect controller=myhost.net --user="myuser" --password="verysecret" --command=\"deploy F:\warfolder\mywar.war --server-groups=main-server-group\""
  args:
    executable: cmd

1 个答案:

答案 0 :(得分:0)

我必须更改它:

- name: undeploy ...
  win_shell: "set nopause=true && F:/xyz/wildfly-8.2.0.Final/bin/jboss-cli.bat --connect controller=myhost.net --user="myuser" --password="verysecret" --command=\"deploy F:\warfolder\mywar.war --server-groups=main-server-group\""
  args:
    executable: cmd

对此:

- name: undeploy ...
  win_shell: "call set nopause=true && call F:/xyz/wildfly-8.2.0.Final/bin/jboss-cli.bat --connect controller=myhost.net --user="myuser" --password="verysecret" --command=\"deploy F:\warfolder\mywar.war --server-groups=main-server-group\""
  args:
    executable: cmd

我不得不“打电话”一切。

对我有帮助的事情:Difference between call and cmd /c in windows batch