在 C# 中使用 New Process(),如何将命令行文本复制到文本文件?
我想使用参数 -a、-c 和 3400@takd 运行 lmutil.exe,然后将命令行提示符生成的所有内容放入文本文件中。我下面的内容不起作用。
如果我逐步完成该过程,我会收到诸如“引发 System.InvalidOperationException 类型的异常”之类的错误,
Process p = new Process();
p.StartInfo.FileName = @"C:\FlexLM\lmutil.exe";
p.StartInfo.Arguments = "lmstat -a -c 3400@tkad>Report.txt";
p.Start();
p.WaitForExit();
我想要的是将命令行输出写入 Report.txt
I want to run lmutil.exe with the arguments -a, -c, and 3400@takd, then put everything that command line prompt generates into a text file. What I have below isn't working.
If I step through the process, I get errors like "threw an exception of type System.InvalidOperationException"
Process p = new Process();
p.StartInfo.FileName = @"C:\FlexLM\lmutil.exe";
p.StartInfo.Arguments = "lmstat -a -c 3400@tkad>Report.txt";
p.Start();
p.WaitForExit();
All I want is for the command line output to be written to Report.txt
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要获取 Process 输出,您可以使用记录的 StandardOutput 属性 此处。
然后你可以将其写入文件:
To get the
Process
output you can use theStandardOutput
property documented here.Then you can write it to a file:
您不能使用
>
通过 Process 进行重定向,必须使用StandardOutput
。另请注意,要使其正常工作,必须将 StartInfo.RedirectStandardOutput 设置为 true。You can't use
>
to redirect via Process, you have to useStandardOutput
. Also note that for it to workStartInfo.RedirectStandardOutput
has to be set to true.