mirror of
https://github.com/denglihong2007/CRSim
synced 2026-06-22 18:05:39 +08:00
45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
using CRSim.Core.Models;
|
||
namespace CRSim.Core.Utils
|
||
{
|
||
public static class CommandLineParser
|
||
{
|
||
public static CommandLineOptions Parse(string[] args)
|
||
{
|
||
var options = new CommandLineOptions();
|
||
|
||
for (int i = 1; i < args.Length; i++)
|
||
{
|
||
var arg = args[i];
|
||
|
||
if (!arg.StartsWith("-"))
|
||
continue;
|
||
|
||
string key = arg.TrimStart('-', '/').ToLower();
|
||
|
||
// 是否为最后一个参数 或 下一个参数也是一个key(说明当前是布尔/无值参数)
|
||
bool isLastArg = (i + 1 >= args.Length);
|
||
bool nextIsFlag = !isLastArg && args[i + 1].StartsWith("-");
|
||
|
||
string? value = null;
|
||
if (!isLastArg && !nextIsFlag)
|
||
{
|
||
value = args[i + 1];
|
||
i++; // skip value
|
||
}
|
||
|
||
switch (key)
|
||
{
|
||
case "epp":
|
||
options.ExternalPluginPath = value;
|
||
break;
|
||
case "debug":
|
||
options.Debug = true;
|
||
break;
|
||
}
|
||
}
|
||
|
||
return options;
|
||
}
|
||
}
|
||
}
|