执行.bat文件时ExitCode始终为0。

3

我通常不是一个C#专业人士,所以希望这不是个愚蠢的问题...

我有一个类似下面这样的.bat文件(当然这只是一个简单的示例):

文件 nn.bat

exit /B 3

当我从命令行运行它时,我看到%ERRORLEVEL%为3(太好了!!)

我有这个C#程序:

C#程序

class Program
{
    static void Main(string[] args)
    {
        Process p = new Process();

        p.StartInfo.FileName = @"nn.bat";

        p.Start();
        p.WaitForExit();

        int rc = p.ExitCode;

        Console.WriteLine(rc);
    }
}

我期望rc的值为3,但无论我尝试什么都是0……

我的错误在哪里?


2
它在我这里运行正常。你确定代码中没有任何错误吗? - Jon
您可能还想查看这篇文章:在C#中执行批处理文件 - Artemix
@Jon,是的,我确定了……您所说的It works correctly for me是指rc == 3吗? - A.B.Cade
@Jon,一个谜团...它可能与操作系统有关吗?我正在使用win XP sp3。 - A.B.Cade
1个回答

1

最终,我找到了一个解决方法:

在我的批处理文件中,我使用了exit 3而不是exit /B 3

这个想法(和解释)来自于this的答案。

我仍然无法解释为什么其他人使用/B选项也能够工作 - 我猜测这可能与他们的操作系统版本有关。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接