使用包含换行符的字符串参数启动外部程序

Launch external program with string arguments containing line breaks

.Net WinForms C# 应用程序我需要调用另一个程序(这也是一个 .Net WinForms C# 应用程序如果这有什么不同)与包含换行符/换行符的字符串参数。

如果我使用Process.Start()方法(在调用程序中)和Environment.GetCommandLineArgs()(在被调用程序) 要做到这一点,它相当于 运行 来自命令行的程序。在这种情况下,是否能够将包含换行符/换行符而不 运行 的字符串参数传递给任何一方的问题?

Answered By – IInspectable Aug 17 at 16:07

Process.Start() 呼叫 CreateProcess()。不涉及命令行解释器。这与命令行中的 运行 进程完全不同。命令行解释器对命令行中的有效字符施加限制。您不能通过命令行传递换行符(但可以通过调用 CreateProcess())。