dat*_*ore 8 .net c# console console-application command-line-arguments
容易重现,但对我来说真的很奇怪:
将以下带有3个字符串的'args'添加到VisualStudio中的命令行参数文本框中(在项目属性 - >调试 - >启动选项下):
-SourceFile:"c:\temp\file.txt" -DestinationFolder:"c:\temp\" -ArchiveFolder:"C:\temp\"
Run Code Online (Sandbox Code Playgroud)
使用这个简单的控制台应用程序进
class Program
{
static void Main(string[] args)
{
foreach (string t in args)
{
Console.WriteLine(t);
}
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
结果:数组(args [])有2个而不是3个字符串?
[0] SourceFile:c:\temp\file.txt
[1] DestinationFolder:c:\temp" -ArchiveFolder:C:\temp"
Run Code Online (Sandbox Code Playgroud)
有人能解释我为什么会这样吗?引号引起一些奇怪的原因,引号将被.net删除,但在这里,仍有一些引用......但我看不出问题......
谢谢你的帮助!
kev*_*ner 12
你有一个\"在DestinationFolder价值,其"逃逸"的报价,其中包括它在价值的文字,而不是将其与开引号配对关闭的字符串.你想要一个文字\,所以使用\\:
-SourceFile:"c:\temp\file.txt" -DestinationFolder:"c:\temp\\" -ArchiveFolder:"C:\temp\\"
Run Code Online (Sandbox Code Playgroud)
(你甚至可以在SO的突出显示引擎中看到逃脱行动)