【发布时间】:2013-01-04 17:21:57
【问题描述】:
我编写了这个控制台应用程序,它读取一系列命令行参数并对其进行处理。
问题是,如果用户输入如下内容:
--folder "C:\my folder\" --username john
Main 函数的 args 字符串数组将有 2 个元素而不是 4 个:
1st element: "--folder"
2nd element: "C:\my folder\" --username john"
(\" 序列被转义为双引号。)
由于不使用引号会导致 5 个元素...
--folder C:\my folder\ --username john
1st element: --folder
2nd element: C:\my
3rd element: folder\
4th element: --username
5th element: john
...解决此问题的最佳方法是什么?
【问题讨论】:
-
嗯。如果有人错误地转义了他们在命令行上提供的参数,他们应该在他们在命令行上键入时修复它。这不是你应该在程序内部尝试和修复的(对用户的意图使用某种形式的“最佳猜测”)。
-
CodeProject here 上有一篇关于它的文章。
标签: c# .net command-line console-application command-line-arguments