在编写程序的过程中,偶尔会用到命令行来控制别的程序做相关的操作,如本人近日正在做latex相关的项目,则需要用命令行对tex文件进行编译生成PDF。在WPF框架中,可以用如下的代码来实现(如果直接拷贝代码会缺少一些引用,利用VS的提醒直接引用即可):
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;//是否使用操作系统shell启动
p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息
p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
p.StartInfo.RedirectStandardError = true;//重定向标准错误输出
p.StartInfo.CreateNoWindow = false;//不显示程序窗口
p.Start();//启动程序
p.StandardInput.WriteLine("c:");//目录装到C盘
p.StandardInput.WriteLine(@"cd C:\Users\weixin\Desktop\latex");//目录跳转到目标目录下
p.StandardInput.WriteLine("pdflatex 杂谈勾股定理.tex");//编译
p.StandardInput.WriteLine("exit");//结束标志
string output = p.StandardOutput.ReadToEnd();//获取cmd窗口的输出信息,即便并无获取的需要也需要写这句话,不然程序会假死
p.WaitForExit();//等待程序执行完
p.Close();//退出进程