如何解析主要论点?

时间:2010-08-07 12:38:35

标签: c# command-line-arguments

我如何找到这些信息:

认为我们开始了这个过程:

testFile.exe i- 100 k- "hello" j-"C:\" "D:\Images" f- "true" 

现在我怎样才能在应用程序启动时获得主要参数,所以我有:

int i = ... ; //i will be 100
string k = ... ; // k = hello
string[] path = ... ; // = path[0] = "C:\" , path[1] = "D:\Images"
bool f = ... ; // f = true;

问候

4 个答案:

答案 0 :(得分:3)

参数传递给正在调用的Main函数:

static void Main(string[] args) 
{
    // The args array contain all the arguments being passed:
    // args[0] = "i-"
    // args[1] = "100"
    // args[2] = "k-"
    // args[3] = "hello"
    // ...
}

参数的顺序与命令行中传递的顺序相同。如果您想使用命名参数,可以查看建议this postNDesk.OptionsMono.Options

答案 1 :(得分:2)

您可以使用 Environment.CommandLine Environment.GetCommandLineArgs()

String[] arguments = Environment.GetCommandLineArgs();

有关MSDN

的更多信息

答案 2 :(得分:2)

如前所述,您可以使用string[] args参数或Environment.GetCommandLineArgs()。请注意,对于CLickOnce部署的应用程序,您还需要其他内容。

您可以在string[]上进行自己的处理,也可以在CodePlex上使用this one等库。

有关文件名中的空格和转义引号的一些棘手细节,请参阅this SO question

答案 3 :(得分:1)

您可以使用NDesk.Options。这是他们的documentation