从执行.Net程序

时间:2017-09-08 14:13:02

标签: powershell

有谁知道如何从.NET可执行文件中获取返回代码?我编写了一个程序,它有一个返回int的静态main方法,当我从powershell运行它时,我似乎无法得到这个数字。这就是我目前所拥有的:

&$executable $params
exit $LASTEXITCODE

其中$executable是可执行文件的路径,$params是传递给可执行文件的参数。

但是,$LASTEXITCODE始终为0.程序通过Log4Net控制台appender写入控制台,因此上面将输出通过管道传递给控制台。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

听起来像我的可执行文件没有返回退出代码(即Environment.Exit()),而是输出结果代码(例如Console.Write())。

尝试类似:

$ReturnValue = &$executable $params
Exit $ReturnValue

答案 1 :(得分:1)

(Start-Process -FilePath 'exe' -ArgumentList @() -PassThru -Wait).ExitCode

这将在执行完成后获取退出代码。您甚至可以将其分配给变量并根据需要访问流程成员。