在为ProcessStartInfo传递参数时收到错误

时间:2017-11-20 11:09:06

标签: c#

在下面的C#代码中,我收到错误,

ProcessStartInfo psi = new ProcessStartInfo("logman.exe")
            {
                RedirectStandardOutput = true,
                Arguments = "FabricTraces | findstr Root",
                WindowStyle = ProcessWindowStyle.Hidden,
                UseShellExecute = false
            };
            Process proc = Process.Start(psi); ;
            StreamReader myOutput = proc.StandardOutput;
            proc.WaitForExit(20000);
            if (proc.HasExited)
            {
                Console.WriteLine( myOutput.ReadToEnd());
            }

错误,

Argument '|' is unknown.
Argument 'findstr' is unknown.
Argument 'Root' is unknown.

我需要传递下面的论点,怎么做?谢谢你的回答。

FabricTraces | findstr Root

在控制台中输出

C:> logman.exe FabricTraces | findstr Root 根路径:C:\ ProgramData \ Windows Fabric \ Fabric \ log \ Traces \

C:>

1 个答案:

答案 0 :(得分:0)

ProcessStartInfo接受带引号内的空格的参数,并将它们解释为多个参数。所以你应该用双引号来包装它。 (据我所知,你应该将一个论点传递给过程)

        startInfo.Arguments = "\"FabricTraces | findstr Root\"";

现在它应被视为一个参数而不是3个空格分隔的参数。