.Net本身的功能虽然很强,但是,有些时候,控制台、命令行的功用还是不可
忽视的,恰当的使用命令行,可以起到事半功倍的效果
这里要说的是以.net的程序为宿主,调用命令行程序,执行某些操作,并将命令行的输出结果返回到.net宿主里。
我们说的控制台程序,并不是单纯的指cmd.exe/command.exe,而是泛指具有标准输入、输出功能的程序。
因为通常的控制台程序,多数是在cmd命令行界面里执行的,所以,我们以cmd为例子来说
大家在cmd命令行里,敲入help或?,可以看到如下输出:(以XP为例,其他操作系统差别不大)
通过上面的列表,大家可以看到,很多复杂的功能,用命令行完成是非常easy 了(上面列出的并不是全部命令,只是部分)
下面,我们举个例子,比如:取得当前的系统信息,那么我只需要调
用systeminfo即可
//实例化一个进程类
Process cmd=new Process();
//获得系统信息,使用的是systeminfo.exe这个控制台程序
cmd.StartInfo.FileName="systeminfo.exe";
//将cmd的标准输入和输出全部重定向到.NET的程序里
eShellExecute=false;//此处必须为false 否则引发异常
cmd.StartInfo.RedirectStandardInput=true;//标准输入
cmd.StartInfo.RedirectStandardOutput=true;//标准输出
//不显示命令行窗口界面
cmd.StartInfo.CreateNoWindow=true;
cmd.StartInfo.WindowStyle=ProcessWindowStyle.Hidden;
cmd.Start();//启动进程
//获取输出
//需要说明的:此处是指明开始获取,要获取的内容,
//只有等进程退出后才能真正拿到
this.textBox1.Text=cmd.StandardOutput.ReadToEnd();
cmd.WaitForExit();//等待控制台程序执行完成
cmd.Close();//关闭该进程。