获取exe以外的错误级别

时间:2010-03-10 12:57:57

标签: .net scripting batch-file rexx

是否可以从.net exe获取错误级别以外的返回值? exe是从脚本,批处理或rexx中调用的。

如果没有,你可以从批处理或rexx中调用程序集中的方法并检索返回值吗?

3 个答案:

答案 0 :(得分:5)

任何.NET可执行文件的入口(和出口)点都是main method,它必须是使用voidint返回类型声明的静态方法。

因此,您无法直接返回int以外的任何内容。

int值是错误级别(按照惯例,0表示成功)。

您仍然可以在程序中写入“状态”文件,该文件允许您编写任何您想要的内容并从中读取。

答案 1 :(得分:1)

在C / C ++上下文中它取决于main()方法的签名。但必须返回int。所以oded的建议值得一试

答案 2 :(得分:1)

一种可能的替代解决方案是让.net方法将字符串打印到stdout,将其重定向到rxqueue.exe,将输出放在rexx可以找到它的位置。然后在你的rexx包装器中,等待返回,当它到达时从队列拉出。

'external.exe | rxqueue'
line. = ''
ndx = 0
do while queued() > 0
   ndx = ndx + 1    
   parse pull line.ndx
end 
line.0 = ndx  /* this is unnecessary but is a common practice to store the 
                 stem size in leaf 0 */

/* now deal with your results */