在.NET控制台应用程序参数中处理\的正确方法是什么?

时间:2014-02-06 03:16:56

标签: c# .net cmd

我写了一个小应用程序来将文件从源文件复制到目标文件。我期待两个参数,源和目的地。以下命令工作正常。

test.exe "C:\source path" "D:\destination"

我遇到的问题是,当我在"中传递参数并以\结束时,它就会混乱。

例如:

test.exe "C:\source path\" "D:\destination"

由于\是转义字符,因此test.exe将第一个参数变为C:\source path"而不是C:\source path\

那么,处理这个问题的正确方法是什么。

即使是最基本的示例也表明从命令行传递的奇怪行为 - \"会转换为"

static void Main(string[] args)
{
 foreach(var s in args)
 {
    System.Console.WriteLine(s);
 }
}

1 个答案:

答案 0 :(得分:0)

 test.exe @"C:\source path\" @"D:\destination"

@使字符串成为逐字逐句。

在逐字字符串文字中,分隔符之间的字符是逐字解释的,唯一的例外是quote-escape-sequence。

了解更多here on msdn