在C#中调用cmd命令,可以使用System.Diagnostics.Process
类。这个类允许启动和管理系统进程及其资源。以下是一个简单的示例,展示了如何使用Process
类来执行cmd命令。
示例:执行简单的cmd命令
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
// 创建ProcessStartInfo实例
ProcessStartInfo startInfo = new ProcessStartInfo();
// 设置要启动的进程名(这里是cmd)
startInfo.FileName = "cmd.exe";
// 设置cmd命令(使用/c表示执行完命令后关闭cmd)
startInfo.Arguments = "/c dir"; // 例如,列出当前目录下的文件和文件夹
// 设置使用操作系统shell启动进程
startInfo.UseShellExecute = false;
// 设置不创建窗口
startInfo.CreateNoWindow = true;
// 设置重定向标准输出
startInfo.RedirectStandardOutput = true;
// 创建Process实例
using (Process process = Process.Start(startInfo))
{
// 读取cmd命令的输出
using (StreamReader reader = process.StandardOutput)
{
string result = reader.ReadToEnd();
Console.Write(result);
}
// 等待进程结束
process.WaitForExit();
}
}
}
说明
- ProcessStartInfo 类用于设置启动进程的属性,如文件名、参数、工作目录等。
- FileName 属性设置为
"cmd.exe"
,表示启动cmd命令提示符。 - Arguments 属性用于传递给cmd的参数。在这个例子中,
/c dir
表示执行dir
命令(列出目录内容),/c
参数告诉cmd执行完命令后关闭。 - UseShellExecute 设置为
false
,这允许你重定向输入、输出和错误流。 - CreateNoWindow 设置为
true
,这样cmd命令就不会在新的窗口中执行,而是在后台执行。 - RedirectStandardOutput 设置为
true
,以便能够读取命令的输出。 - 使用
StreamReader
读取cmd命令的输出,并通过控制台输出。 WaitForExit()
方法等待进程结束。
可以根据需要修改 Arguments
属性的值来执行不同的cmd命令。这个方法是执行任何需要cmd或类似shell环境来运行的命令的通用方式。