Обратная косая черта и кавычки в аргументах командной строки
Является ли следующее поведение какой-то функцией или ошибкой в C # .NET?
Тестовое приложение:
using System;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Arguments:");
foreach (string arg in args)
{
Console.WriteLine(arg);
}
Console.WriteLine();
Console.WriteLine("Command Line:");
var clArgs = Environment.CommandLine.Split(' ');
foreach (string arg in clArgs.Skip(clArgs.Length - args.Length))
{
Console.WriteLine(arg);
}
Console.ReadKey();
}
}
}
Запустите его с аргументами командной строки:
a "b" "\\x\\" "\x\"
В результате я получаю:
Arguments:
a
b
\\x\
\x"
Command Line:
a
"b"
"\\x\\"
"\x\"
Отсутствуют обратная косая черта и не удаленная кавычка в аргументах, передаваемых методу Main (). Какой правильный обходной путь, кроме анализа вручнуюEnvironment.CommandLine
?