【发布时间】:2012-05-19 21:32:51
【问题描述】:
我创建了一个 .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);
}
【问题讨论】:
-
您是否正在对 args 进行某种解析?
-
您是否正在阅读可能正在转义 " 的 \ ?另外,您确定您输入的字符确实是双引号 " 吗?也许它是一个看起来像它的角色。我知道我的希腊语设置会产生一个“,但不是这样读的。
-
大@ericosg!就是这样,我不知道为什么,但引号似乎有所不同(???)。谢谢!
标签: c# .net console-application command-line-arguments