当前位置:  开发笔记 > 编程语言 > 正文

从ASPX页面运行命令行,并将输出返回到页面

如何解决《从ASPX页面运行命令行,并将输出返回到页面》经验,为你挑选了1个好方法。

我正在尝试访问命令行并执行命令,然后将输出返回到我的aspx页面.一个很好的例子是在aspx页面的页面加载上运行dir并通过Response.Write()返回输出.我尝试过使用下面的代码.当我尝试调试它时,它会运行,但永远不会完成加载,也不会呈现输出.我正在使用C#和.NET Framework 3.5sp1.任何帮助非常感谢.

谢谢,布莱恩

public partial class CommandLine : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        System.Diagnostics.Process si = new System.Diagnostics.Process();
        si.StartInfo.WorkingDirectory = @"c:\";
        si.StartInfo.UseShellExecute = false;
        si.StartInfo.FileName = "cmd.exe";
        si.StartInfo.Arguments = "dir";
        si.StartInfo.CreateNoWindow = true;
        si.StartInfo.RedirectStandardInput = true;
        si.StartInfo.RedirectStandardOutput = true;
        si.StartInfo.RedirectStandardError = true;
        si.Start();
        string output = si.StandardOutput.ReadToEnd();
        si.Close();
        Response.Write(output);
    }
}

configurator.. 9

cmd.exe的命令行参数的语法有问题.这就是为什么cmd永远不会退出的原因.
为了让cmd.exe运行程序然后退出,你需要发送语法"/ c [command]".尝试使用该行运行相同的代码

        si.StartInfo.Arguments = "dir";

换成了

        si.StartInfo.Arguments = "/c dir";

看看它是否有效



1> configurator..:

cmd.exe的命令行参数的语法有问题.这就是为什么cmd永远不会退出的原因.
为了让cmd.exe运行程序然后退出,你需要发送语法"/ c [command]".尝试使用该行运行相同的代码

        si.StartInfo.Arguments = "dir";

换成了

        si.StartInfo.Arguments = "/c dir";

看看它是否有效

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有