C#調用外部dos命令並取得返回結果

以下為一個調用ping命令檢測網絡的代碼示例.通過該示例看到,可以用c#調用dos內部命令及命令行程式,並取得相應的結果,而且這些程式的執行過程不會顯示出來.從而我們在需要調用外部程式時可以將其嵌入到自已的程式中使用了.

using System.Diagnostics;

        private   static   string  CmdPing( string  strIp)
        {

            Process p 
=   new  Process();
            
// 设定程序名
            p.StartInfo.FileName  =   " cmd.exe " ;
            
// 关闭Shell的使用
            p.StartInfo.UseShellExecute  =   false ;
            
// 重定向标准输入
            p.StartInfo.RedirectStandardInput  =   true ;
            
// 重定向标准输出
            p.StartInfo.RedirectStandardOutput  =   true ;
            
// 重定向错误输出
            p.StartInfo.RedirectStandardError  =   true ;
            
// 设置不显示窗口
            p.StartInfo.CreateNoWindow  =   true ;

            
string  pingrst;
            
// 启动进程
            p.Start();
            
// 输入要执行的命令,这里就是ping
            p.StandardInput.WriteLine( " ping -n 1  "   +  strIp);
            p.StandardInput.WriteLine(
" exit " );
            
// 从输出流获取命令执行结果
             string  strRst  =  p.StandardOutput.ReadToEnd();

            
// 分析strRst字符串就可以知道网络的连接情况
             if  (strRst.IndexOf( " (0% loss) " !=   - 1 )
                pingrst 
=   " 连接 " ;
            
else   if  (strRst.IndexOf( " Destination host unreachable. " !=   - 1 )
                pingrst 
=   " 无法到达目的主机 " ;
            
else   if  (strRst.IndexOf( " Request timed out. " !=   - 1 )
                pingrst 
=   " 超时 " ;
            
else   if  (strRst.IndexOf( " Unknown host " !=   - 1 )
                pingrst 
=   " 无法解析主机 " ;
            
else
                pingrst 
=  strRst;

            p.Close();

            
return  pingrst;

        }

 

文章參考: http://www.programfan.com/article/2474.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值