使用C#中的New Process(),如何将命令行文本复制到文本文件中?

使用C#中的New Process(),如何将命令行文本复制到文本文件中?,c#,processstartinfo,C#,Processstartinfo,我想用参数-a、-c和-c运行lmutil.exe3400@takd,然后将命令行提示符生成的所有内容放入文本文件中。我下面的东西坏了 如果我单步执行该过程,会出现类似“抛出System.InvalidOperationException类型的异常”这样的错误 我只想将命令行输出写入Report.txt,以获得过程输出。您可以使用标准输出属性记录 然后您可以将其写入文件: Process p = new Process(); p.StartInfo.RedirectStandardOutput

我想用参数-a、-c和-c运行lmutil.exe3400@takd,然后将命令行提示符生成的所有内容放入文本文件中。我下面的东西坏了

如果我单步执行该过程,会出现类似“抛出System.InvalidOperationException类型的异常”这样的错误


我只想将命令行输出写入Report.txt,以获得
过程
输出。您可以使用
标准输出
属性记录

然后您可以将其写入文件:

Process p = new Process();
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = @"C:\FlexLM\lmutil.exe";
p.StartInfo.Arguments = "lmstat -a -c 3400@tkad";
p.Start();
System.IO.File.WriteAllText("Report.txt", p.StandardOutput.ReadToEnd());
p.WaitForExit();
p.Close();

您不能使用
通过进程重定向,您必须使用
标准输出
。还要注意,要使其工作,必须将
StartInfo.RedirectStandardOutput
设置为true。

3400@tkad
>Report.txt
?中的>还有什么作用34000@tkadFilename=“cmd.exe”,Arguments=“/c:\flex..yadayada>Report.txt”空格无效,>表示应该将输出复制到文本文件OK,但从参数中删除“>Report.txt”。这是可行的。我原以为它会把它放在lmutil.exe目录下。而是在我正在运行的c#程序的bin文件夹中。非常感谢。
Process p = new Process();
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = @"C:\FlexLM\lmutil.exe";
p.StartInfo.Arguments = "lmstat -a -c 3400@tkad";
p.Start();
System.IO.File.WriteAllText("Report.txt", p.StandardOutput.ReadToEnd());
p.WaitForExit();
p.Close();