如何在CMD Bat中获取ruby.exe返回代码?

如何在CMD Bat中获取ruby.exe返回代码?,ruby,windows,batch-file,cmd,Ruby,Windows,Batch File,Cmd,我试图在cmd.exe中获取ruby脚本的返回值。如果捕获到异常,ruby脚本将返回-1,如果成功,则返回0 rescue Exception => ex puts ex.message returnvalue = -1 else returnvalue = 0 ensure puts returnvalue 在cmd批处理中,使用ruby.exe调用脚本 ruby tt.rb 1 %1 但我无法在cmd批处理文件中检索returnvalue(例如,使用%errorle

我试图在cmd.exe中获取ruby脚本的返回值。如果捕获到异常,ruby脚本将返回-1,如果成功,则返回0

rescue Exception => ex
  puts ex.message
  returnvalue = -1
else
  returnvalue = 0
ensure
  puts returnvalue
在cmd批处理中,使用ruby.exe调用脚本

ruby tt.rb 1 %1
但我无法在cmd批处理文件中检索returnvalue(例如,使用%errorlevel%)。有没有办法做到这一点


谢谢

put-1
不会使
ruby.exe
返回
-1
;它可以打印
-1
。如果执行退出操作,则返回
-1


在*nix中,很容易将程序的输出(与退出代码相反)捕获到变量中。在窗户下,不那么容易;对于构造,您可以使用,但它的用途有限。

不要使用负值退出。成功时以0退出,错误时以大于0的值退出。Microsoft强烈建议不要返回负值。同样在Linux/Unix上,由于各种原因,应用程序或脚本在退出时不应返回负值。