1、
private void RunBat(string batPath)
{
Process pro = new Process();
FileInfo file = new FileInfo(batPath);
pro.StartInfo.WorkingDirectory = file.Directory.FullName;
pro.StartInfo.FileName = batPath;
pro.StartInfo.CreateNoWindow = false;
pro.Start();
}
2、
System.Diagnostics.Process.Start(@str);
为什么有的执行文件用第一种方法可以正常打开,用第二种方法就直接显示停止工作
第二个办法可能没有指定WorkingDirectory,如果你的程序要读取特定目录下的文件,它找不到就不工作。
第二种方法使用的是默认的StartInfo类中的启动参数,包括工作路径,参数等,如果楼主的程序中涉及到了相对路径的操作,就有可能发生路径问题,导致程序错误。建议在调用其他程序的时候选用第一种方法,调用系统程序或者命令方便起见时可以采用第二种。