我想做一个自动测试系统,它允许我自动运行批处理文件。现在程序是:
我想要一个按钮,这样一旦用户点击它,上面的过程就会自动运行。
我已经做了一些事情,它允许我打开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();
}
感谢和问候
答案 0 :(得分:1)
问题是什么?您也可以直接启动批处理文件,无需先启动CMD.EXE。如果您需要让用户在关闭窗口前按一个键,请使用PAUSE
命令结束批处理文件。
编辑:抱歉,我没有注意到“网络表单”部分。所以现在我的问题是:你想要发生什么?您将从Web表单在服务器上运行批处理。但是,您想要在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
包含进程的完整控制台输出(批处理文件)。
答案 1 :(得分:1)
这应该与设置process1.StartInfo.Arguments = "antc";
一样简单(假设您的包含路径排成一行或文件位于您的网络工作目录中(以及IIS has permission to run Process())