如何从我的命令行捕获标准输出

本文关键字:标准输出 命令行 我的 | 更新日期: 2023-09-27 18:26:23

我尝试在命令行中为命令运行 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 执行字符串指定的命令,但保留

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

/C 执行字符串指定的命令,然后终止