检索Shell脚本退出代码(返回值)

时间:2019-01-10 08:40:09

标签: c# .net logstash sh

尝试验证Logstash配置文件。从Windows命令行运行以下行时:

C:> C:\Logstash\bin\logstash -t -f C:\Logstash\config\my.config

然后我可以使用

检查结果

echo %errorlevel%

在语法错误的情况下返回1。现在,我想用C#编程地做到这一点,所以:

using System.Diagnostics;

var logstashProcess = Process.Start(@"C:\Logstash\bin\logstash", @"-t -f C:\Logstash\config\my.config");
logstashProcess.WaitForExit();
return logstashProcess.ExitCode == 0;

问题在于,即使配置文件完全混乱,它也始终返回true(退出代码为零)。

我的猜测:由于C:\Logstash\bin\logstash是一个shell脚本,我得到的零是成功运行的shell本身-而不是Logstash进程(该进程在该脚本中使用jruby执行)。关于如何获得实际回报值的任何想法吗?批处理文件可以工作吗? (我现在不想在聚会上添加额外的脚本)

0 个答案:

没有答案