溫馨提示×

C#子進(jìn)程的輸出如何捕獲

c#
小樊
99
2024-08-27 09:55:06
欄目: 編程語言

在C#中,可以使用System.Diagnostics.Process類來創(chuàng)建和管理子進(jìn)程

using System;
using System.Diagnostics;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        // 創(chuàng)建一個新的ProcessStartInfo對象,用于配置子進(jìn)程
        ProcessStartInfo startInfo = new ProcessStartInfo
        {
            FileName = "cmd.exe", // 指定要運(yùn)行的程序(例如:cmd.exe)
            RedirectStandardOutput = true, // 重定向標(biāo)準(zhǔn)輸出,以便我們可以捕獲它
            UseShellExecute = false, // 不使用操作系統(tǒng)shell啟動進(jìn)程
            CreateNoWindow = true // 不創(chuàng)建新窗口
        };

        // 創(chuàng)建一個新的Process對象,用于管理子進(jìn)程
        Process process = new Process
        {
            StartInfo = startInfo
        };

        // 啟動子進(jìn)程
        process.Start();

        // 讀取子進(jìn)程的輸出
        string output = process.StandardOutput.ReadToEnd();

        // 等待子進(jìn)程退出
        process.WaitForExit();

        // 輸出子進(jìn)程的輸出
        Console.WriteLine("子進(jìn)程輸出:");
        Console.WriteLine(output);
    }
}

這個示例將創(chuàng)建一個新的子進(jìn)程,該子進(jìn)程運(yùn)行cmd.exe。通過設(shè)置RedirectStandardOutputtrue,我們可以捕獲子進(jìn)程的輸出。然后,我們使用process.StandardOutput.ReadToEnd()方法讀取子進(jìn)程的輸出,并將其輸出到控制臺。

0