帮助在Web窗体中运行命令行
问题描述:
我想要做一个自动化测试系统,它将允许我自动运行批处理文件。现在该过程是:帮助在Web窗体中运行命令行
- 运行的cmd.exe
- 类型在“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
包含进程(批处理文件)的全控制台输出。
我创建Web窗体有用户输入几个领域。例如他可以输入他自己的电子邮件地址和目标的电子邮件地址,会发生什么情况是,一旦用户进入这些字段,他点击Button1这是“执行”按钮,然后运行该批处理文件来定位另一个XML文件,这将生成电子邮件到目标以及在webform中输入的其他合适的字段,因此,所有的输出可以完全在服务器端,没有要求客户端查看任何东西,我会澄清你是否仍然有疑问 – jeremychan 2011-02-10 03:03:12
@jeremy:Then是的,f或者关于`PAUSE`命令,并按照说明运行批处理文件。不需要执行CMD.EXE。 – 2011-02-10 03:05:02