我想写个操作命令行窗口的代码,比如我的画面的上点了那个执行按钮后,想编译一个文件~
就像我以前打开“开始”中的运行,输入cmd,跳出命令行窗口。
然后输入cd D:\    (文件在D盘下)
回车后进入了D盘  然后输入编译命令csc Hello.cs,再按回车
D盘下就生成了个Hello.exe文件
然后输入Hello去执行它,也就显示了执行的结果。
如图:
以上是我能在命令行窗口看到的,我现在不想手动,想做个程序自动执行,并且跳出命令行窗口
而且上面的内容步骤要和我手动操作一样。
现在遇到的问题是,能打开命令行窗口,还能执行一条命令,但是运行时候马上就消失了,汗
请高手指点,下面是我的代码。。 
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = false;      
p.StartInfo.Arguments = "/c" + "ipconfig"; //测试
p.Start();

解决方案 »

  1.   

    System.Diagnostics.Process p = new System.Diagnostics.Process(); 
    p.StartInfo.FileName = "cmd.exe"; 
    p.StartInfo.UseShellExecute = false; 
    p.StartInfo.Arguments = "/k ipconfig"; //测试 
    p.Start(); 
      

  2.   


    http://www.codeproject.com/KB/recipes/plossum_commandline.aspx
    http://www.codeproject.com/KB/recipes/command_line.aspx
      

  3.   

    http://www.codeproject.com/KB/cs/commandlineincsharp.aspx
      

  4.   

    恩  那么如何操作多条命令呢
    p.StartInfo.Arguments = "/k" + "ipconfig";
                
                p.Start();
                p.StartInfo.Arguments = "/k" + "cd c:\\";
                p.Start();
    如果我这样它会跳出2个命令行窗口
      

  5.   

    没源代码 你也应该有执行程序吧?给你个思路吧:首先得到选择文件的路径,然后在运行的时候写一个.CMD的批处理,执行它,然后在删除。再给你个本程序产生的批处理吧
    csc /out:"C:\\$ExeTemp.exe" "C:\demo.cs" 
    @if not exist "C:\\$ExeTemp.exe" goto execute
    $ExeTemp.exe
    :execute
    @pause
      

  6.   

    这个批处理不是太懂,我试验了下
    执行后在c盘做成了个$ExeTemp.exe文件,然后呢?
    那个文件我执行了下,貌似一闪就关掉了。在那一瞬间我看到里面有一行应该说只有一行我代码里输出的字符。
    好像没那个过程
      

  7.   

    菜鸟的菜鸟建议,在你要执行的程序里面最后加一行延时的代码不就行了嘛,这样程序没有退出之前CMD窗口是不会关掉的。以前C里面经常用那个getchar(),程序运行完以后会等待按任意键以后才会退出。
      

  8.   

    再顶顶~  看来还要把dos那些命令也要摸熟悉才能搞~  先看看如何实现的~~
      

  9.   

    再顶顶~ 看来还要把dos那些命令也要摸熟悉才能搞~ 先看看如何实现的~~