c#执行外部命令示例分享


在C#中执行外部命令,你可以使用`System.Diagnostics`命名空间下的`Process`类。下面是一个简单的示例,展示了如何使用`Process`类来执行一个外部命令(比如,打开记事本程序):


using System;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        // 创建ProcessStartInfo对象,用于配置要启动的进程
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = "notepad.exe"; // 指定要启动的程序名
        // 如果需要向程序传递参数,可以这样做
        // startInfo.Arguments = "your_arguments_here";

        // 配置是否使用操作系统shell启动进程
        // 对于某些程序(如批处理文件),设置为true是必要的
        startInfo.UseShellExecute = true;

        // 创建Process对象
        using (Process process = Process.Start(startInfo))
        {
            // 如果需要等待进程结束,可以使用process.WaitForExit();
            // 在这里,我们直接让程序继续执行,不等待notepad结束

            // 可以在这里添加一些代码来处理进程启动后的操作
            // 比如,监控进程状态、读取进程输出等

            Console.WriteLine("Notepad has been started.");
        }

        // 注意:在上面的例子中,因为notepad是一个GUI程序,所以程序会立即继续执行
        // 而不会等待notepad关闭。如果你启动的是一个控制台程序,并且希望读取它的输出,
        // 那么你需要设置UseShellExecute = false,并且可能需要重定向标准输出。

        // 示例结束
        Console.WriteLine("Press any key to exit...");
        Console.ReadKey();
    }
}

这段代码展示了如何使用`Process`类来启动一个外部程序(在这个例子中是记事本)。你可以通过修改`startInfo.FileName`和`startInfo.Arguments`来指定不同的程序和参数。如果你启动的是一个控制台程序,并且希望捕获它的输出,你可以设置`startInfo.UseShellExecute = false`,并且使用`process.StandardOutput.ReadToEnd()`来读取输出(注意,这还需要设置`process.StartInfo.RedirectStandardOutput = true`)。