我创建了一个获取命令行参数的.NET控制台应用程序。
当我传递带有空格的args时,我使用引号来包含这些参数,以便它们不会被cmd拆分:
C:\MyAppDir> MyApp argument1 "argument 2" "the third argument"
如果我在Windows XP中执行该应用程序,它可以正常工作:它有3个参数:
但是,如果我在Windows Server 2008中执行它,它似乎忽略了引号:它有6个参数:
任何想法为什么?
注意:我使用此代码在Main开始执行时打印参数:
Console.WriteLine("Command line arguments:");
foreach (string arg in args)
{
Console.WriteLine("# " + arg);
}
答案 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 \