c#调用exe文件利用.bat文件

时间:2022-09-30 09:33:53
楼主hb_wxy(天天)2005-08-05 22:48:06 在 .NET技术 / C# 提问

我的调用方法如下:  
  System.Diagnostics.Process   proc;  
  proc   =   System.Diagnostics.Process.Start(@"C:/wxy.bat   iT   sT");  
  proc.WaitForExit();  
  带两个参数为什么不行啊?  
   
  问题点数:100、回复次数:12Top

1 楼hb_wxy(天天)回复于 2005-08-05 23:52:30 得分 0

upTop

2 楼leonchenjian(小黑)回复于 2005-08-05 23:55:22 得分 10

proc   =   System.Diagnostics.Process.Start(@"C:/wxy.bat",   "iT   sT");Top

3 楼hb_wxy(天天)回复于 2005-08-06 00:22:15 得分 0

我试过了,这样不行啊Top

4 楼zhilunchen(他山居士)回复于 2005-08-06 00:52:36 得分 0

老大,关键是看你wxy.bat文件是否接受参数?Top

5 楼hb_wxy(天天)回复于 2005-08-06 00:59:45 得分 0

肯定接受啊,我直接在命令行执行   c:/wxy.bat   1   2   就可以啊Top

6 楼zhzuo(秋枫)回复于 2005-08-06 22:14:33 得分 60

//试试里面的方法,  
  using   System;  
  using   System.Diagnostics;  
   
   
  namespace   Zhzuo  
  {  
  ///   <summary>  
  ///   CmdUtility   的摘要说明。  
  ///   </summary>  
  public   class   CmdUtility  
  {  
   
  ///   <summary>  
  ///   执行cmd.exe命令  
  ///   </summary>  
  ///   <param   name="commandText">命令文本</param>  
  ///   <returns>命令输出文本</returns>  
  public   static   string   ExeCommand(string   commandText)  
  {  
  return   ExeCommand(new   string   []{commandText});  
  }  
  ///   <summary>  
  ///   执行多条cmd.exe命令  
  ///   </summary>  
  ///   <param   name="commandArray">命令文本数组</param>  
  ///   <returns>命令输出文本</returns>  
  public   static   string   ExeCommand(string   []   commandTexts)  
  {  
  Process   p   =   new   Process();  
  p.StartInfo.FileName   =   "cmd.exe";  
  p.StartInfo.UseShellExecute   =   false;  
  p.StartInfo.RedirectStandardInput   =   true;  
  p.StartInfo.RedirectStandardOutput   =   true;  
  p.StartInfo.RedirectStandardError   =   true;  
  p.StartInfo.CreateNoWindow   =   true;  
  string   strOutput   =   null;  
  try  
  {  
  p.Start();  
  foreach(string   item   in   commandTexts)  
  {  
  p.StandardInput.WriteLine(item);  
  }  
  p.StandardInput.WriteLine("exit");  
  strOutput   =   p.StandardOutput.ReadToEnd();  
  p.WaitForExit();  
  p.Close();  
  }  
  catch(Exception   e)  
  {  
  strOutput   =   e.Message;  
  }  
  return   strOutput;  
  }  
  ///   <summary>  
  ///   启动外部Windows应用程序,隐藏程序界面  
  ///   </summary>  
  ///   <param   name="appName">应用程序路径名称</param>  
  ///   <returns>true表示成功,false表示失败</returns>  
  public   static   bool   StartApp(string   appName)  
  {  
  return   StartApp(appName,ProcessWindowStyle.Hidden);  
  }  
  ///   <summary>  
  ///   启动外部应用程序  
  ///   </summary>  
  ///   <param   name="appName">应用程序路径名称</param>  
  ///   <param   name="style">进程窗口模式</param>  
  ///   <returns>true表示成功,false表示失败</returns>  
  public   static   bool   StartApp(string   appName,ProcessWindowStyle   style)  
  {  
  return   StartApp(appName,null,style);  
  }  
  ///   <summary>  
  ///   启动外部应用程序,隐藏程序界面  
  ///   </summary>  
  ///   <param   name="appName">应用程序路径名称</param>  
  ///   <param   name="arguments">启动参数</param>  
  ///   <returns>true表示成功,false表示失败</returns>  
  public   static   bool   StartApp(string   appName,string   arguments)  
  {  
  return   StartApp(appName,arguments,ProcessWindowStyle.Hidden);  
  }  
  ///   <summary>  
  ///   启动外部应用程序  
  ///   </summary>  
  ///   <param   name="appName">应用程序路径名称</param>  
  ///   <param   name="arguments">启动参数</param>  
  ///   <param   name="style">进程窗口模式</param>  
  ///   <returns>true表示成功,false表示失败</returns>  
  public   static   bool   StartApp(string   appName,string   arguments,ProcessWindowStyle   style)  
  {  
  bool   blnRst   =   false;  
  Process   p   =   new   Process();  
  p.StartInfo.FileName   =   appName;//exe,bat   and   so   on  
  p.StartInfo.WindowStyle   =   style;  
  p.StartInfo.Arguments   =   arguments;  
  try  
  {  
  p.Start();  
  p.WaitForExit();  
  p.Close();  
  blnRst   =   true;  
  }  
  catch  
  {  
  }  
  return   blnRst;  
  }  
  }  
  }  
  Top

7 楼sswv(林健)回复于 2005-08-06 23:50:08 得分 10

private   System.Diagnostics.ProcessStartInfo   Info   =   new   System.Diagnostics.ProcessStartInfo();  
  private   System.Diagnostics.Process   Proc   =   new   System.Diagnostics.Process();  
  Info.FileName   =   "命令";  
  Info.Arguments   =   "参数";  
  Proc   =   System.Diagnostics.Process.Start(Info);Top

8 楼jinjazz(近身剪)回复于 2005-08-06 23:55:49 得分 5

直接用api函数试试Top

9 楼lovevsnet(编程一把手)回复于 2005-08-07 08:50:58 得分 10

System.Diagnostics.ProcessStartInfo   psi   =    
                new   System.Diagnostics.ProcessStartInfo();  
    psi.FileName   =   @"C:/WINDOWS/system32/cmd.exe";  
    psi.Arguments   =   "/c   c:/wxy.bat   1   2";  
    psi.WindowStyle=System.Diagnostics.ProcessWindowStyle.Hidden;  
    System.Diagnostics.Process.Start(psi);  
  我在给CSDN上朋友的回贴,和你这差不多:  
  http://community.csdn.net/Expert/TopicView.asp?id=4128635Top

10 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-08-07 09:15:10 得分 5

System.Diagnostics.Process   proc;  
  proc   =   System.Diagnostics.Process.Start(@"cmd   /c   C:/wxy.bat   iT   sT");  
  proc.WaitForExit();