创建一个7-Zip进程解压文件:
System.Diagnostics.Process unZipProcess = new System.Diagnostics.Process();
unZipProcess.StartInfo.FileName = @"C:\7zG.exe"; //执行文件
unZipProcess.StartInfo.Arguments = " x \"压缩文件\" -o\"输出路径\" -aoa"; //执行参数
unZipProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //表示隐藏窗口
unZipProcess.Start(); //开始执行
unZipProcess.WaitForExit(); //等待进程结束
//unZipProcess.WaitForExit(1000); //等待进程结束,设置等待时间最多为1000毫秒
//unZipProcess.Kill(); //强制结束进程
unZipProcess.Close(); //释放资源
执行CMD命令类似,多了几项设置,释义忘了,可以用VS鼠标悬停看说明
System.Diagnostics.Process cmdProcess = new System.Diagnostics.Process();
cmdProcess.StartInfo.FileName = "cmd.exe";
cmdProcess.StartInfo.UseShellExecute = false;
cmdProcess.StartInfo.RedirectStandardInput = true;
cmdProcess.StartInfo.RedirectStandardOutput = true;
cmdProcess.StartInfo.RedirectStandardError = true;
//隐藏窗口执行
cmdProcess.StartInfo.CreateNoWindow = true;
cmdProcess.Start();
//执行命令,在命令后面带上exit可以让cmd执行完成后退出,否则执行`WaitForExit()`且不指定超时时间会假死
cmdProcess.StandardInput.WriteLine("ping 127.0.0.1&exit");
//可以多次调用此方法来执行多条命令,执行完所有命令后再执行exit
//但要注意每次提交完命令要等待一定时间再执行下一个,否则会失败
//cmdProcess.StandardInput.WriteLine("ipconfig /release");
//System.Threading.Thread.Sleep(500);
//cmdProcess.StandardInput.WriteLine("ipconfig /renew");
//System.Threading.Thread.Sleep(500);
//cmdProcess.StandardInput.WriteLine("exit");
cmdProcess.StandardInput.AutoFlush = true;
//获取返回值
String OutputData = cmdProcess.StandardOutput.ReadToEnd();
//等待进程退出,可以指定超时时间
cmdProcess.WaitForExit();
//关闭
cmdProcess.Close();