我写了这个控制台应用程序,它读取一系列命令行参数并对它们做了一些事情。
问题是如果用户输入如下内容:
--folder "C:\my folder\" --username john
主函数的args String数组将包含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
...解决这个问题的最佳方法是什么?
答案 0 :(得分:6)
这是Windows上奇怪的命令行解析规则的结果。见http://msdn.microsoft.com/en-us/library/windows/desktop/17w5ykft(v=vs.85).aspx。命令行实际上应该是:--folder "C:\my folder\\" --username john
这是用户输入错误。你不应该试图纠正它的代码;只是优雅地失败。