帮助在Web窗体中运行命令行

问题描述:

我想要做一个自动化测试系统,它将允许我自动运行批处理文件。现在该过程是:帮助在Web窗体中运行命令行

  1. 运行的cmd.exe
  2. 类型在“ANTC”

我想有一个按钮,以便一旦用户点击它,上述的过程被跑自动。

我有事做了,这让我开拓的cmd.exe,如下图所示:

protected void Button1_Click(object sender, EventArgs e) 
{ 

    System.Diagnostics.Process process1 = new System.Diagnostics.Process(); 
    process1.StartInfo.WorkingDirectory = Request.MapPath("~/"); 
    process1.StartInfo.FileName = Request.MapPath("CMD.EXE"); 
    process1.Start(); 
} 

感谢和问候

这应该是简单的设置process1.StartInfo.Arguments = "antc";(假设你的include路径排队或文件是在您的网页的工作目录(和IIS has permission to run Process()

有什么问题吗?你也可以直接启动批处理文件,不需要先启动CMD.EXE。如果您需要让用户在关闭窗口之前按下某个键,请使用PAUSE命令结束您的批处理文件。

编辑:对不起,我没有注意到“网页表单”部分。所以现在我的问题是:你想要发生什么?您将从Web表单在服务器上运行批处理。但是,你想显示任何东西到网络浏览器?你想要发生什么?

EDIT2:

这里是代码我有做了你需要的东西:

Process proc = new Process(); 

proc.StartInfo.FileName = "c:\\whatever\\executable.exe"; 
proc.StartInfo.Arguments = "-parameter -parameter -etc"; 
proc.StartInfo.UseShellExecute = false; // You may or may not need this 

// For sure you need this 
proc.StartInfo.RedirectStandardOutput = true; 

// You may not need this 
proc.StartInfo.RedirectStandardError = true; 

proc.Start(); 

// For sure you need this 
string procOutput = proc.StandardOutput.ReadToEnd(); 

// You may not need this 
string procError = proc.StandardError.ReadToEnd(); 

在这一点上,procOutput包含进程(批处理文件)的全控制台输出。

+0

我创建Web窗体有用户输入几个领域。例如他可以输入他自己的电子邮件地址和目标的电子邮件地址,会发生什么情况是,一旦用户进入这些字段,他点击Button1这是“执行”按钮,然后运行该批处理文件来定位另一个XML文件,这将生成电子邮件到目标以及在webform中输入的其他合适的字段,因此,所有的输出可以完全在服务器端,没有要求客户端查看任何东西,我会澄清你是否仍然有疑问 – jeremychan 2011-02-10 03:03:12

+0

@jeremy:Then是的,f或者关于`PAUSE`命令,并按照说明运行批处理文件。不需要执行CMD.EXE。 – 2011-02-10 03:05:02