c# - 如何从我的命令行捕获标准输出?

标签 c#

我尝试在命令行中为命令运行 process.start(),并尝试将输出转换为字符串或一些有用的位置。输出将包含几行(如 DIR 命令)。我阅读了操作方法,但它对我不起作用。它运行但随后进入循环并且不会停止。见下文。有什么想法吗?

        ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("cmd.exe", 
                                                                  @" /k dir");
        Process myProcess = new Process();
        myProcess.StartInfo.RedirectStandardOutput = true;
        myProcess.StartInfo.UseShellExecute = false;
        myProcess.StartInfo.FileName = "cmd.exe";
        myProcess.StartInfo.Arguments = @" /k dir";
        myProcess.Start();         

        string ppp = myProcess.StandardOutput.ReadToEnd();
        myProcess.WaitForExit();

最佳答案

您的进程永远不会自行退出,因为您将 /K 标志传递给 cmd.exe,这将使窗口保持打开状态(因此进程处于事件状态) ) 在它运行你的命令之后。

/K Carries out the command specified by string but remains

我认为您在这里寻找的是使用 /C ,它将在运行您的命令后关闭命令窗口。

/C Carries out the command specified by string and then terminates

关于c# - 如何从我的命令行捕获标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9517830/

相关文章:

C# 使用 MySql 数据库中的 true/false 来继续或显示错误

c# - 属性绑定(bind)没有响应

c# - 如何在 Java 中使用套接字

c# - 属性构造函数的默认值?

c# - 如何在运行时更改 NLog 目标的连接字符串?

c# - EF 核心 : Scaffold DbContext keeps failing

c# - 如何使用反射调用 WCF 服务?

c# - 如果编译它,为什么 C#7 语法中的 TryParse(清空参数)会发出警告?

c# - C# 中的打开文件对话框

c# - 从 JSON 编码的二进制数据恢复图像