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

发布于 2024-12-25 00:57:44 字数 422 浏览 1 评论 0原文

我想使用参数 -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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天煞孤星 2025-01-01 00:57:44

要获取 Process 输出,您可以使用记录的 StandardOutput 属性 此处

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

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();

To get the Process output you can use the StandardOutput property documented here.

Then you can write it to a file:

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();
也只是曾经 2025-01-01 00:57:44

您不能使用 > 通过 Process 进行重定向,必须使用 StandardOutput。另请注意,要使其正常工作,必须将 StartInfo.RedirectStandardOutput 设置为 true。

You can't use > to redirect via Process, you have to use StandardOutput. Also note that for it to work StartInfo.RedirectStandardOutput has to be set to true.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文