我正面临一个奇怪的问题,我有一个.bat文件,其中包含重命名文件的代码,当我手动打开.bat文件时,它会对它进行重命名一个文件,但是当我尝试从C#中编程打开它时,它不执行任何操作,它只是打开文件并且不编译它写入的内容。我输入代码:从C#运行.bat文件#
Process.Start(@"file.bat");
我也知道,如果你输入的路径进入cmd并按下回车就会打开该文件,编译它,所以我写的是:
ProcessStartInfo psi3 = new ProcessStartInfo("cmd", "/c " + '"'+"D:\\my Work\\My Soft\\CA Delete\\CA Delete\\bin\\Debug\\file.bat"+'"');
Process p3 = Process.Start(psi3);
p3.WaitForExit()
但仍然是相同的问题:该文件正在被打开,但从来没有写入它的内容。
编辑:我想通为什么]
我把窗户CMD的快照应该运行.bat文件和我得到错误:
ERROR : THE FILE SPECIFIED COULD NOT BE FOUND
但如何?当我手动运行.bat文件时,它工作得很好!
尝试设置' 'ProcessStartInfo'的WorkingDirectory'。 – 2012-02-17 03:41:17
我不明白 – BOSS 2012-02-17 03:42:51
为什么不读取批处理文件并分别处理每一行?作为一个可管理的替代品,.NET有能力完成大部分文件操作任务;您可能能够使用许多可用的.NET脚本选项之一。另一种选择是嵌入能够从.NET运行的Powershell。 – 2012-02-17 03:43:10