我有一个下面列出的函数,我不清楚如何使用给定的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();
}
}
答案 0 :(得分:4)
您可以将Main
声明为return int
:
static int Main(string[] args)
{
int exitCode = //...
return exitCode;
}
答案 1 :(得分:1)
3个选项:
从Main返回一个int(如AlexD及其他人所述)。
设置Environment.ExitCode
(仅当Main返回void时)。
致电Environment.Exit(int)
。这会立即退出程序。
如果要从深层嵌套的调用堆栈中设置退出代码,后两者很有用。
答案 2 :(得分:0)
返回进程的错误级别是使用签名返回int
时Main方法的返回值:
private static int Main(string[] args)
{
int errorLevel = 1; /*get return code from actual processing*/
return errorLevel;
}