C# 像普通windows cmd一样获取参数

C# 像普通windows cmd一样获取参数,c#,string,command-line,command-line-arguments,C#,String,Command Line,Command Line Arguments,我想知道是否有一种方法(内置或由第三方实现)来获取字符串并将其转换为字符串数组,就像Windows Cmd转换给应用程序的参数一样。 因此,如果我编写例如goat“evil goat”-g,我希望字符串转换为一个包含三个单元格的数组(goat,evil goat(不确定是否保留引号,但我认为没有),-g)。我知道我可以手工实现,但我想知道是否有某种方法可以自动实现 如果有人想知道,这是用于命令解释器的,字符串将使用按钮从文本框.Text中读取 欢迎与相关信息链接 您可以使用正则表达式执行以下操作

我想知道是否有一种方法(内置或由第三方实现)来获取字符串并将其转换为字符串数组,就像Windows Cmd转换给应用程序的参数一样。 因此,如果我编写例如
goat“evil goat”-g
,我希望字符串转换为一个包含三个单元格的数组(
goat
evil goat
(不确定是否保留引号,但我认为没有),
-g
)。我知道我可以手工实现,但我想知道是否有某种方法可以自动实现

如果有人想知道,这是用于命令解释器的,字符串将使用
按钮从
文本框.Text
中读取


欢迎与相关信息链接

您可以使用正则表达式执行以下操作:

public static List<string> GetCommandLineArguments(string commandline){
    var arguments = Regex.Matches(commandline, @"[\""].+?[\""]|[^ ]+")
                .Cast<Match>()
                .Select(m => m.Value)
                .ToList();
    return arguments;
}
公共静态列表GetCommandLineArguments(字符串命令行){
var arguments=Regex.Matches(命令行,@“[\”“]”.+?[\”“].[^]+”)
.Cast()
.选择(m=>m.Value)
.ToList();
返回参数;
}

See@MCND将立即查看,谢谢您的回复!:)哇,这是个老问题。让我很快试一试当我问这个问题时,这可能就是我最后要做的。无论如何,谢谢你的帮助!:)