可以将名称/值作为参数传递到Windows控制台应用程序中吗?

时间:2009-11-20 13:59:50

标签: c# console-application

构建我的第一个控制台应用程序之一。

这个控制台应用程序将运行我正在定义的一些存储过程。我希望能够通过命令行传递参数值。

有没有办法传递名称值对?例如:

myConsoleApp.exe sproc_GetLastActives, @LastActiveDate - 11/20/2009

我知道如何检索参数值,但是我注意到如果我放入一个/或一个,那么args []会被拆分。如何传递名称值对?

谢谢!

4 个答案:

答案 0 :(得分:1)

你想要一个字符串吗?试试这个:

myConsoleApp.exe "sproc_GetLastActives, @LastActiveDate - 11/20/2009"

(即只是添加引号)

斜杠和逗号不应该影响事物,但命令行解析器会分隔空格,除非你引用它。

答案 1 :(得分:1)

这个问题有几个解决方案,最常见的是使用'/'或' - '来为参数添加前缀,然后使用=来从参数中分隔它们,例如

consoleapp.exe /spname=sproc_GetLastActives /LastActiveDate="11/20/2009"

在您的代码中,您可以使用String.Split(arg [i],new char [] {'='})来破坏各个参数。

答案 2 :(得分:0)

consoleapp.exe key1 val1 key2 val2

args[]提供您的4个项目,在您的代码中将它们配对。 :P

答案 3 :(得分:0)

mykhaylo's response类似,为什么不传递一个字符串的值:

consoleapp.exe sproc_name key1=value1 "key2=Value With Spaces" key3=value3

然后只测试=符号的存在并解析它以获得您的键/值对。