8

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

将以下带有 3 个字符串的“args”添加到 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();
    }
}

结果:数组 (args[]) 有 2 个而不是 3 个字符串?

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

有人能解释一下为什么会这样吗?引号有一些奇怪的原因,正常情况下,引号将被.net删除,但在这里,仍然有一些引号......但我看不到问题......

谢谢你的帮助!

4

1 回答 1

13

\"DestinationFolder值中有一个“转义”引号,将其包含在值的文本中,而不是与开始引号配对以关闭字符串。你想要一个文字\,所以使用\\

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

(你甚至可以在 SO 的高亮引擎中看到转义)

于 2013-01-22T17:44:25.640 回答