本篇文章主要介绍了"C#调用CMD程序",主要涉及到方面的内容,对于Windows 7jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
最近写了两个小程序都要调用Windows自带的命令行程序,一个是调用Openfiles.exe查询正在编辑的共享文档,一个是调用DiskPart.exe查询硬盘...
最近写了两个小程序都要调用Windows自带的命令行程序,一个是调用Openfiles.exe查询正在编辑的共享文档,一个是调用DiskPart.exe查询硬盘状态。两种命令行程序调用有点不同,记录一下。
1.用ProcessStartInfo配置参数调用。
这种是在CMD里直接带参数输入的,要注意的是要处理错误输出,可能同时有错误和标准输出的。
ProcessStartInfo start = new ProcessStartInfo("openfiles");//设置运行的命令行程序,不在系统环境变量的要输入完整路径 start.Arguments = "/Query /V /NH /S " + host + " /U " + user + " /P " + passWord; //命令行程序的参数 start.CreateNoWindow = true;//不显示dos命令行窗口 start.RedirectStandardOutput = true;//标准输出 start.RedirectStandardInput = true;//标准输入 start.RedirectStandardError = true;//错误输出 start.UseShellExecute = false;////指定不使用系统的外壳程序,而是直接启动被调用程序本身 Process p = Process.Start(start);
StreamReader reader = p.StandardOutput;//截取输出流 errorMSG = p.StandardError.ReadLine(); //读取错误输出string result = reader.ReadToEnd(); //读取标准输出
p.WaitForExit(); //等待程序执行完退出进程 p.Close(); //关闭进程 reader.Close(); //关闭流
2.用Process..StandardInput.WriteLine方法输入的。
这类通常可以直接双击打开运行等待输入。要注意需要输入exit退出后才读取到输出的。这种也可以将输入先写在单独的文件然后将文件作为参数输入,除非经常要修改作测试不然写参数在文件有乜好?