我想从被调用的批处理文件中获取正确的返回码,以便如果批处理调用失败,我的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
答案 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