C# 控制台应用程序中的多个参数未正确解析
很容易复制,但对我来说真的很奇怪: 将以下带有3个字符串的“参数”添加到VisualStudio的命令行参数文本框中(在项目属性->调试->启动选项下): 使用以下简单控制台应用程序进行测试: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); }
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\\"