控制台应用程序无法正确解析具有空格的args

时间:2012-05-11 09:24:55

标签: c# .net console-application command-line-arguments

我创建了一个获取命令行参数的.NET控制台应用程序。

当我传递带有空格的args时,我使用引号来包含这些参数,以便它们不会被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);
}

3 个答案:

答案 0 :(得分:8)

确保您输入的字符确实是双引号“。

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

我知道我的希腊语设置会产生“但不是那种方式。”

答案 1 :(得分:0)

请尝试一下。

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

答案 2 :(得分:0)

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

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