Консольное приложение неправильно анализирует аргументы с пробелами

Я создал консольное приложение .NET, которое получает некоторые аргументы командной строки.

Когда я передаю аргументы с пробелами, я заключаю эти аргументы в кавычки, чтобы они не разделялись cmd:

C:\MyAppDir> MyApp argument1 "argument 2" "the third argument"

Если я запускаю приложение в Windows XP, оно работает нормально: оно получает 3 аргумента:

  • аргумент1
  • аргумент 2
  • третий аргумент

Однако, если я выполняю его в Windows Server 2008, он, кажется, игнорирует кавычки: он получает 6 аргументов:

  • аргумент1
  • «аргумент
  • "
  • третий
  • аргумент"

Есть идеи почему?

ПРИМЕЧАНИЕ. Я вывел аргументы сразу после запуска Main, используя этот код:

Console.WriteLine("Command line arguments:");
foreach (string arg in args)
{
    Console.WriteLine("# " + arg);
}
5
задан German Latorre 11 May 2012 в 09:32
поделиться