C#可以通过 System.Diagnostics.Process
类来实现执行DOS命令的功能。
具体步骤如下:
1. 引入命名空间
using System.Diagnostics;
2. 实例化Process对象
Process process = new Process();
3. 配置Process对象属性
我们需要设置 ProcessStartInfo 类型对象的属性值,以指明我们要执行的命令。
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe"; // 执行的命令,这里为 cmd.exe
startInfo.Arguments = "/c dir"; // 命令参数,这里为 /c dir,表示列出当前目录下的所有文件和目录
startInfo.UseShellExecute = false; // 允许使用操作系统的shell
startInfo.RedirectStandardInput = true; // 重定向标准输入
startInfo.RedirectStandardOutput = true; // 重定向标准输出
startInfo.CreateNoWindow = true; // 不创建新窗口
上面的示例中,我们设置FileName属性为 cmd.exe
,Arguments属性为 /c dir
,这时候我们就可以执行 dir
命令,将带有当前目录下的所有文件和文件夹列表的输出显示在控制台。
4. 启动Process对象
process.StartInfo = startInfo;
process.Start();
5. 读取Process输出
string output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);
完整代码示例
using System;
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/c dir";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true;
process.StartInfo = startInfo;
process.Start();
string output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);
process.WaitForExit();
}
}
}
如果你想执行其他的命令,只需要修改Arguments属性的值即可,比如下面这个示例会执行ipconfig命令:
startInfo.Arguments = "/c ipconfig";
至此,我们可以执行DOS命令了。当然,有些DOS命令需要管理员权限,这时候需要在exe后缀名的应用程序中添加管理员权限,以确保命令的正确执行。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#执行DOS命令的方法 - Python技术站