c#程序调用cmd执行命令(转)
在开发过程中,我们经常需要通过c#程序去调用操作系统的一些命令。在Windows系统中,CMD命令行界面是比较常用的一种方式。本文将介绍如何使用C#程序调用CMD执行命令。
方法一:使用Process类
Process类是C#程序中用于执行外部进程的一个类,也可以使用它来执行CMD命令。
示例代码:
Process process = new Process();
process.StartInfo.FileName = "cmd.exe"; //设置需要执行的命令
process.StartInfo.Arguments = "/c dir"; //设置命令参数
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true; //重定向标准输出
process.StartInfo.CreateNoWindow = true; //不显示窗口
process.Start();
string output = process.StandardOutput.ReadToEnd(); //读取标准输出
process.WaitForExit(); //等待执行完毕
这段代码中,我们使用Process类的实例来执行CMD.exe程序,并通过重定向标准输出来获取执行结果。
需要注意的是,Windows 操作系统中 CMD 命令行在编码上使用 GBK 编码,我们可以通过更改 C# 程序文件的编码来避免在输出时的乱码问题,或者使用Encoding.GetEncoding("GBK")
来处理输出结果。
方法二:使用System.Diagnostics.Process.Start方法
除了使用Process类,也可以使用System.Diagnostics.Process.Start方法来执行CMD命令:
示例代码:
Process.Start("cmd.exe", "/c dir"); //使用参数传递需要执行的命令
这段代码中,我们直接使用Process.Start方法来执行CMD.exe程序,并使用参数传递需要执行的命令。需要注意的是,此方法只是相当于在CMD命令行中输入命令,命令执行的结果无法直接获取。
总结
本文介绍了两种使用C#程序调用CMD执行命令的方法:使用Process类和使用System.Diagnostics.Process.Start方法。通过这两种方法,我们可以方便地调用CMD命令行执行一些复杂的任务,帮助我们更好地完成开发工作。
完整代码示例:
using System.Diagnostics;
using System.Text;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Method1();
Method2();
}
static void Method1()
{
Process process = new Process();
process.StartInfo.FileName = "cmd.exe"; //设置需要执行的命令
process.StartInfo.Arguments = "/c dir"; //设置命令参数
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true; //重定向标准输出
process.StartInfo.CreateNoWindow = true; //不显示窗口
process.Start();
string output = process.StandardOutput.ReadToEnd(); //读取标准输出
process.WaitForExit(); //等待执行完毕
output = Encoding.GetEncoding("GBK").GetString(Encoding.Default.GetBytes(output)); //处理输出结果编码问题
Console.WriteLine(output);
}
static void Method2()
{
Process.Start("cmd.exe", "/c dir"); //使用参数传递需要执行的命令
}
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#程序调用cmd执行命令(转) - Python技术站