如何使用errorlevel退出函数

时间:2014-09-09 02:58:23

标签: c# methods return

我有一个下面列出的函数,我不清楚如何使用给定的errorlevel退出函数和/或程序。我有一个调用此脚本的批处理文件,我需要捕获errorlevel(如果有的话)。

    class Program
    {
        static void Main(string[] args)
        {
            //string emulationDefault;
            string emulationMode = "";
            string bcuFileName = args[0];
            string prodIDFileName = args[1];
            string outFileName = args[2];

            emulationMode = ParseEmulation(emulationMode, prodIDFileName);
            Console.WriteLine("default= " + emulationMode);
            Console.ReadLine();

        }

            private static string ParseEmulation(string emulationMode, string prodIDFileName)
            {
                var parser = new FileIniDataParser();
                IniData data = parser.ReadFile(prodIDFileName);

                try
                {
                    emulationMode = data["Controller1"]["EmulationDefault"].Trim();

                }
                catch (NullReferenceException)
                {
                    Debug.WriteLine("Missing EmulationDefault value");
                    return -1;
                }

                return emulationMode.ToString();
            }

        }

3 个答案:

答案 0 :(得分:4)

您可以将Main声明为return int

static int Main(string[] args)
{
    int exitCode = //...
    return exitCode;
}

答案 1 :(得分:1)

3个选项:

  1. 从Main返回一个int(如AlexD及其他人所述)。

  2. 设置Environment.ExitCode(仅当Main返回void时)。

  3. 致电Environment.Exit(int)。这会立即退出程序。

  4. 如果要从深层嵌套的调用堆栈中设置退出代码,后两者很有用。

答案 2 :(得分:0)

返回进程的错误级别是使用签名返回int时Main方法的返回值:

private static int Main(string[] args)
{
    int errorLevel = 1; /*get return code from actual processing*/
    return errorLevel;
}