使用Csharp (C#)运行控制台命令
使用到 Process 类,详细使用请自行去了解 此类是在 System.Diagnostics 命名空间下
贴上代码:
using System;
using System.Diagnostics; // 引入 Process类所在的命名空间
public class ConsoleCommands {
public static void RunCMDCommand(out string outContext, params[] arguments)
{
int length = arguments.Length;
if(length < 1)
return;
using(Process pc = new Process() )
{
pc.StartInfo.FileName = "cmd.exe; // 因为是执行 控制台命令 直接写死 cmd.exe
pc.StartInfo.CreateNoWindow = true;
pc.StartInfo.RedirectStandardError = true
pc.StartInfo.RedirectStandardInput = true;
pc.StartInfo.RedirectStandardOutput = true;
pc.StartInfo.UseShellExecute = false;
pc.Start();
foreach (string command in arguments)
{
pc.StandardInput.WriteLine(command); //写入命令
}
pc.StandardInput.WriteLine("exit"); //执行结束 必要的
pc.StandardInput.AutoFlush = true;
outContext = pc.StandardOutput.ReadToEnd(); //读取执行的结果
pc.WaitForExit();
pc.Close();
}
}
//执行第三方软件命令
public static void RunExECommand(string execuable, out string outContext, params[] arguments)
{
int length = arguments.Length;
if(length < 1)
return;
using(Process pc = new Process() )
{
pc.StartInfo.FileName = execuable; // 因为是执行 控制台命令 直接写死 cmd.exe
pc.StartInfo.CreateNoWindow = true;
pc.StartInfo.RedirectStandardError = true
pc.StartInfo.RedirectStandardInput = true;
pc.StartInfo.RedirectStandardOutput = true;
pc.StartInfo.UseShellExecute = false;
pc.Start();
foreach (string command in arguments)
{
pc.StandardInput.WriteLine(command); //写入命令
}
pc.StandardInput.WriteLine("exit"); //执行结束 必要的
pc.StandardInput.AutoFlush = true;
outContext = pc.StandardOutput.ReadToEnd(); //读取执行的结果
pc.WaitForExit();
pc.Close();
}
}
}