易于复制,但对我来说真的很奇怪:
添加以下内容' 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();
}
}
结果:数组(args [])有2个而不是3个字符串?
[0] SourceFile:c:\temp\file.txt
[1] DestinationFolder:c:\temp" -ArchiveFolder:C:\temp"
有人可以解释一下为什么会这样吗?引号引起一些奇怪的原因,引号将被.net删除,但在这里,仍有一些引用......但我无法看到问题......
感谢您的帮助!
答案 0 :(得分:12)
\"
值中有一个DestinationFolder
,它会“转义”引号,包括它在值的文本中,而不是与开始引号配对以关闭字符串。您需要文字\
,因此请使用\\
:
-SourceFile:"c:\temp\file.txt" -DestinationFolder:"c:\temp\\" -ArchiveFolder:"C:\temp\\"
(你甚至可以在SO的突出显示引擎中看到逃脱行动)