构建我的第一个控制台应用程序之一。
这个控制台应用程序将运行我正在定义的一些存储过程。我希望能够通过命令行传递参数值。
有没有办法传递名称值对?例如:
myConsoleApp.exe sproc_GetLastActives, @LastActiveDate - 11/20/2009
我知道如何检索参数值,但是我注意到如果我放入一个/或一个,那么args []会被拆分。如何传递名称值对?
谢谢!
答案 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
然后只测试=
符号的存在并解析它以获得您的键/值对。