2013-01-22 64 views
8

容易重现,但真的很奇怪,我:多ARGS不正确解析

添加下面的“ARGS” 3串到VisualStudio的命令行参数文本框(在项目属性 - >调试 - >启动选项):

-SourceFile:"c:\temp\file.txt" -DestinationFolder:"c:\temp\" -ArchiveFolder:"C:\temp\" 

用这个简单的控制台应用程序测试:

class Program 
{ 
    static void Main(string[] args) 
    { 
     foreach (string t in args) 
     { 
      Console.WriteLine(t); 
     } 
     Console.ReadKey(); 
    } 
} 

结果:所述阵列(参数[])具有2代替3-串的?

[0] SourceFile:c:\temp\file.txt 
[1] DestinationFolder:c:\temp" -ArchiveFolder:C:\temp" 

有人可以解释我为什么会发生这种情况吗?有一些奇怪的报价导致normaly,报价将被.net删除,但在这里,仍然有一些报价...但我看不到问题...

感谢您的帮助!

回答

12

您在DestinationFolder值中有\",该值“转义”了引号,包括该值在文本中的值,而不是与开头引号配对以关闭字符串。你要一个文字,\,所以使用\\

-SourceFile:"c:\temp\file.txt" -DestinationFolder:"c:\temp\\" -ArchiveFolder:"C:\temp\\" 

(你甚至可以看到在行动中逸出SO真实凸显引擎)

+0

THX!现在很清楚:) – dataCore