Запустить внешнюю программу со строковыми аргументами, содержащими разрывы строк

Из .NetWinFormsC# приложение мне нужно вызвать другую программу (которая также является .NetWinFormsC# приложение, если это имеет какое-либо значение) со строковыми аргументами, содержащими символы перевода строки / новой строки

Если я использую Process.Start() метод (в вызывающей программе) и Environment.GetCommandLineArgs()вызываемой программе), чтобы сделать это, это эквивалентно запуску программы из командной строки. В этом случае сможете передавать строковые аргументы, содержащие символы перевода строки / новой строки, не сталкиваясь с проблемами с обеих сторон?

1 ответ

Решение

Answered By – IInspectable Aug 17 at 16:07

Process.Start() звонки CreateProcess(), Интерпретатор командной строки не задействован. Это совсем не то же самое, что запуск процесса из командной строки. Интерпретатор командной строки накладывает ограничения на допустимые символы в командной строке. Вы не можете передать символ новой строки через командную строку (но вы можете через вызов CreateProcess()).

Другие вопросы по тегам