C# 控制台应用程序中的多个参数未正确解析

C# 控制台应用程序中的多个参数未正确解析,c#,.net,console,console-application,command-line-arguments,C#,.net,Console,Console Application,Command Line Arguments,很容易复制,但对我来说真的很奇怪: 将以下带有3个字符串的“参数”添加到VisualStudio的命令行参数文本框中(在项目属性->调试->启动选项下): 使用以下简单控制台应用程序进行测试: class Program { static void Main(string[] args) { foreach (string t in args) { Console.WriteLine(t); }

很容易复制,但对我来说真的很奇怪:

将以下带有3个字符串的“参数”添加到VisualStudio的命令行参数文本框中(在项目属性->调试->启动选项下):

使用以下简单控制台应用程序进行测试:

class Program
{
    static void Main(string[] args)
    {
        foreach (string t in args)
        {
            Console.WriteLine(t);
        }
        Console.ReadKey();
    }
}
结果:数组(args[])有2个而不是3个字符串

[0] SourceFile:c:\temp\file.txt
[1] DestinationFolder:c:\temp" -ArchiveFolder:C:\temp"
有人能解释一下为什么会这样吗?引号有些奇怪,因为正常情况下,引号将被.net删除,但在这里,仍然有一些引号。。。但我看不出问题所在

谢谢你的帮助

您在
DestinationFolder
值中有一个
\”
,它“转义”引号,将其包含在值的文本中,而不是与开头的引号配对以关闭字符串。您需要一个文本
\
,因此使用
\

-SourceFile:"c:\temp\file.txt" -DestinationFolder:"c:\temp\\" -ArchiveFolder:"C:\temp\\"
(您甚至可以在SO的突出显示引擎中看到正在进行的转义)

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