溫馨提示×

c# process類如何獲取輸出

c#
小樊
81
2024-10-18 14:23:26
欄目: 編程語言

在C#中,你可以使用Process類來執(zhí)行外部程序并獲取其輸出。以下是一個簡單的示例,展示了如何使用Process類運(yùn)行一個命令行程序(如ipconfig),并讀取其標(biāo)準(zhǔn)輸出和錯誤輸出:

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        // 創(chuàng)建一個ProcessStartInfo實例,用于配置要運(yùn)行的進(jìn)程
        ProcessStartInfo startInfo = new ProcessStartInfo
        {
            FileName = "ipconfig", // 要運(yùn)行的命令行程序
            RedirectStandardOutput = true, // 將標(biāo)準(zhǔn)輸出重定向到進(jìn)程的輸出流
            RedirectStandardError = true, // 將錯誤輸出重定向到進(jìn)程的輸出流
            UseShellExecute = false, // 不使用外殼執(zhí)行程序
            CreateNoWindow = true // 不創(chuàng)建新窗口
        };

        // 創(chuàng)建一個Process實例,用于運(yùn)行進(jìn)程
        using (Process process = new Process { StartInfo = startInfo })
        {
            // 開始運(yùn)行進(jìn)程
            process.Start();

            // 讀取進(jìn)程的標(biāo)準(zhǔn)輸出
            string output = process.StandardOutput.ReadToEnd();
            Console.WriteLine("標(biāo)準(zhǔn)輸出:");
            Console.WriteLine(output);

            // 等待進(jìn)程執(zhí)行完成
            process.WaitForExit();

            // 讀取進(jìn)程的錯誤輸出
            string errorOutput = process.StandardError.ReadToEnd();
            if (!string.IsNullOrEmpty(errorOutput))
            {
                Console.WriteLine("錯誤輸出:");
                Console.WriteLine(errorOutput);
            }
        }
    }
}

這個示例將運(yùn)行ipconfig命令行程序,并將其標(biāo)準(zhǔn)輸出和錯誤輸出重定向到應(yīng)用程序的輸出流。然后,它讀取并打印這些輸出。你可以根據(jù)需要修改FileName屬性以運(yùn)行其他命令行程序。

0