使用下面的C#代码执行位于Bat目录下面的批处理脚本。
Process proc = new Process();
proc.StartInfo.FileName = AppDomain.CurrentDomain.BaseDirectory + @"Bat\test.bat";
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.UseShellExecute = true;
proc.Start();
批处理完成删除文件的操作,代码如下所示。
@echo on
del t.txt
pause
执行代码,出现下面的提示信息,找不到指定文件,但是文件真真切切的存在于Bat目录下面。
解决这个问题很简单,只需要在前述C#代码前面加上下面这句代码就OK啦。
Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory + @"Bat\";
这句代码将当前工作目录指定为Bat目录,这样的话程序就会去Bat目录查找指定文件了,而不是去程序根目录查找文件,在程序根目录查找文件,自然找不到了。