Process p=new Process();
try
{   p.StartInfo.FileName = lpath+"\log.bat";
    p.StartInfo.UseShellExecute = true;
    p.Start();
}
catch(Exception e)
{
    Console.writeline(e.Message);
}上面这段代码执行后不能得到正常结果。请问怎么回事?

解决方案 »

  1.   

    试了,只要路径对应该没什么问题呀。lpath+"\log.bat"; => lpath+"\\log.bat"
      

  2.   

    不好意思,是我写错了,应该是这样:
    p.StartInfo.FileName = lpath+@"\log.bat"; 很奇怪,如果我单独执行log.bat,能得到预期结果,如果用上面这段代码执行,就不可以。
      

  3.   

    a.bat内容
    notepad.exe
     
    Process.Start(@"c:\a.bat");
    没有问题
      

  4.   

    楼上能说清楚些吗?我是在文件中直接创建的bat文件,然后执行。
    能否将代码具体化,谢谢。
      

  5.   

    不好意思误导你了
    pro.StartInfo.WorkingDirectory = "c:\\";
    运行bat文件需要设置路径
           Process pro = new Process();
                pro.StartInfo.UseShellExecute = true;
                pro.StartInfo.FileName = @"c:\a.bat";
                pro.StartInfo.CreateNoWindow = true;
    pro.StartInfo.WorkingDirectory = "c:\\";
                pro.Start();
      

  6.   

    我的.bat文件是用来做ftp上传的,其内容为:ftp -s:log.txt
    而log.txt的内容如下:
    open ip
    user
    password
    lcd localpath
    bin
    put *.log
    close
    bye奇怪的是,我在命令行里面直接执行ftp -s:log.txt,就能正常上传东西,而用上面的代码就无法实现。
    按照楼上的试了,仍然不行。
    谢谢了。
      

  7.   

    有可能txt文件已经打开了,但是你看不到,你可以看看任务管理器中是否有很多notepad程序,如果真的没有,那就很可能是aspnet用户没有txt的打开权限,那么再调整权限试试。
      

  8.   

    问题是我要的结果没有得到,就是那个log文件没有上传。至于权限问题,我已经把txt文件的父目录加了aspnet用户了,应该不是这个问题。
    8楼的可能是对的,但如何解决呢?
      

  9.   

    在c#中类Process要引用哪一个命名空间啊?
      

  10.   

    System.Diagnostics问题解决,非常感谢ericzhangbo1982111