将一个字符串拆分(NOT PARSE)到命令行参数C#

时间:2016-09-29 07:01:38

标签: c# .net command-line-arguments

拜,

我有一个似乎是一个简单的问题,但实际上并非如此。我想取一个字符串并将其拆分为命令行参数。几周来我一直在谷歌搜索这个问题,找不到任何适合我需要的东西。

例如,该行: --foo=bar -foo="bar test" --foo "bar \"test\"" --foo bar

将拆分为:(按此顺序)

  • --foo=bar
  • -foo=bar test
  • --foo
  • bar "test"
  • --foo
  • bar

修改

是的我意识到--foo一次使用更多。这是分裂/标记化。不解析,这是下一步。当我去解析时,我不在乎是否会出错。我现在要做的是将字符串转换为数组状态,然后我可以将其输入Mono.Options

编辑2

阅读示例。这就是我想要实现的目标。 只是那个。

2 个答案:

答案 0 :(得分:-4)

如果您正在运行控制台应用程序,则命令行参数将传递给Main方法(String [] args)。

无论如何,如果你想分割你的参数,假设参数在一个字符串变量中,你可以这样做:

var arguments = "--foo=bar -foo=\"bar test\" --foo \"bar \"test\" --foo bar";

var options = arguments.Split(new String[] { "-", "--" }, StringSplitOptions.RemoveEmptyEntries);

// Output
// [0]: "foo=bar "
// [1]: "foo=\"bar test\" "
// [2]: "foo \"bar \"test\" "
// [3]: "foo bar"

enter image description here

答案 1 :(得分:-5)

只需使用Environment.GetCommandLineArgs()即可。

这将为您提供一个表示命令行参数

的字符串数组