Windows Параметр командной строки escape - PullRequest
0 голосов
/ 12 февраля 2020
    static void Main(string[] args)
    {
        foreach (string s in args) Console.WriteLine(s);
    }

Запустите приложение в окне командной строки:

"app.exe" "\\\\" "\'" "\\'"  "\\\'"

Результат:

\\
\'
\\'
\\\'

Что такое логика c за результатом 2-4 - почему-либо 'в хвосте сделать все двойные \, прежде чем не убежал в одиночку \?

(К вашему сведению, если «нет», то должно быть четное \ или второе «сбежать слева»)

Развернуть вопрос: как обычно можно избежать любой строки затем, когда вы помещаете его в двойные кавычки в качестве параметра в командной строке:

... "..." "escaped-string" "..." ...

тогда можете гарантировать, что C# программа получит этот параметр в качестве исходной строки?

Все еще озадачен после Прочитайте это Как экранировать параметр в windows командной строке?

...