C# CMD直接运行语句

#region CMD直接运行语句,不适用所有服务器
bool result = false;
try
{
using (Process process = new Process())创建进程对象
{
string strInput = Console.ReadLine();
Process p = new Process();
设置要启动的应用程序
p.StartInfo.FileName = "cmd.exe";
是否使用操作系统shell启动
p.StartInfo.UseShellExecute = false;
接受来自调用程序的输入信息
p.StartInfo.RedirectStandardInput = true;
输出信息
p.StartInfo.RedirectStandardOutput = false;
不显示程序窗口
p.StartInfo.CreateNoWindow = true;
输出错误
p.StartInfo.RedirectStandardError = false;
启动程序
p.Start();

进入文件夹中
string stmp = Assembly.GetExecutingAssembly().Location;
stmp = stmp.Substring(0, stmp.LastIndexOf('\'));删除文件名
向cmd窗口发送输入信息
string cmd0 = $"@echo off &cd {stmp} &{appSetting.BackupPath.Substring(0,1)}:";
string cmd1 = $"SET BackaupFolder={appSetting.BackupPath}SQL";
string cmd2 = "if not exist %BackaupFolder% ( md %BackaupFolder% )";
string cmd3 = $"mysqldump -hlocalhost -uroot -proot@123 mis expresspackage downpackage > {appSetting.BackupPath}SQL\wcsop_{DateTime.Now.ToString("yyyyMMdd")}.sql "+"&exit";
p.StandardInput.WriteLine(cmd0 + Environment.NewLine);
p.StandardInput.WriteLine(cmd1 + Environment.NewLine);
p.StandardInput.WriteLine(cmd2 + Environment.NewLine);
p.StandardInput.WriteLine(cmd3);
p.StandardInput.AutoFlush = true;

Logger<DataClassDal>.Debug("BackupOpTable ,cmd0:"+ cmd0);
Logger<DataClassDal>.Debug("BackupOpTable ,cmd1:" + cmd1);
Logger<DataClassDal>.Debug("BackupOpTable ,cmd2:" + cmd2);
Logger<DataClassDal>.Debug("BackupOpTable ,cmd3:" + cmd3);

获取输出信息
string strOuput = p.StandardOutput.ReadToEnd();
等待程序执行完退出进程
p.WaitForExit();
p.Close();

result = true;
Logger<DataClassDal>.Debug("BackupOpTable True");
}
}
catch (Exception ex)
{
Logger<DataClassDal>.Error("BackupOpTable Error:", ex);
}
return result;
#endregion

原文地址:https://www.cnblogs.com/wa502/p/14790902.html