C# 控制台应用程序未正确解析带有空格的参数

C# 控制台应用程序未正确解析带有空格的参数,c#,.net,console-application,command-line-arguments,C#,.net,Console Application,Command Line Arguments,我创建了一个.NET控制台应用程序,它可以获取一些命令行参数 当我传递带有空格的参数时,我使用引号来包含这些参数,这样它们就不会被cmd分开: C:\MyAppDir> MyApp argument1 "argument 2" "the third argument" 如果我在Windows XP中执行应用程序,它可以正常工作:它有3个参数: 论据1 论据2 第三个论点 但是,如果我在Windows Server 2008中执行它,它似乎会忽略引号:它会得到6个参数: 论据1 “论

我创建了一个.NET控制台应用程序,它可以获取一些命令行参数

当我传递带有空格的参数时,我使用引号来包含这些参数,这样它们就不会被cmd分开:

C:\MyAppDir> MyApp argument1 "argument 2" "the third argument"
如果我在Windows XP中执行应用程序,它可以正常工作:它有3个参数:

  • 论据1
  • 论据2
  • 第三个论点
但是,如果我在Windows Server 2008中执行它,它似乎会忽略引号:它会得到6个参数:

  • 论据1
  • “论据
  • 2“
  • “那
  • 第三
  • 论据”
你知道为什么吗

注意:我仅在Main开始执行时使用以下代码打印参数:

Console.WriteLine("Command line arguments:");
foreach (string arg in args)
{
    Console.WriteLine("# " + arg);
}

确保您键入的字符确实是双引号”

也许是一个看起来像它的角色

我知道我的希腊语设置会产生一个“a”,但不是这样读的

请试一试


C:\MyAppDir>MyApp argument1\“Argument2\”第三个参数\“

您可以尝试,将每个参数置于配额“”之间,并在路径中放置双反斜杠,例如:


generadorPlantillasPDF.exe“C:\GDI\desarrollos\celula canales\proyectos\Progrectos\curso xml\”generadorprogreso.xml C:\Temp\BVI“C:\GDI\Desarros\celula canales\proyectos\Progreso\plantilla\”C:\GDI\desarrollos\celula canales\proyectos\proyectos\Progreso\Progreso\ Formulario Progreso版本2.0.docx”C:\Temp\

您是否正在使用args进行某种类型的解析?您是否正在读取一个\可能转义为“”?另外,您是否确定您键入的字符确实是双引号“?也许是一个看起来像它的角色。我知道我的希腊语设置会产生一个“但不是那样读的。Grand@ericosg!就是这样,我不知道为什么,但引号似乎有些不同(?)。谢谢!作为答案发布,这样你可以确保关闭它,而不仅仅是一条评论。