繁体   English   中英

C#应用程序无法正确执行批处理文件命令

[英]c# application doesn't perform batch file command correctly

public void runBatchfile(String batchfilename)
{
   try
   {
      ProcessStartInfo processInfo = new ProcessStartInfo(batchfilename);
      processInfo.UseShellExecute = false;
      Process batchProcess = new Process();
      batchProcess.StartInfo = processInfo;
      batchProcess.StartInfo.CreateNoWindow = true;
      batchProcess.Start();
      batchProcess.WaitForExit();
   }
   catch (Exception r) { }
}

runBatchfile(@"c:\lol.bat");

lol.bat包含这两行

dir c:\ /s /b > c:\filelist.txt
exit

当我运行我的代码时,它所做的只是创建一个filelist.txt文件,但实际上并未执行其余命令,如果我将其手动插入CMD,该命令将起作用。

顺便说一句,我尝试了扩展名.cmd,并且我也尝试了不使用exit命令,而没有任何其他结果。

请帮我 :)

在装有Visual Studio 2010的Windows 7 64位计算机上,直接从IDE运行此代码不会执行任何操作。

出于某种预感,这可能与写入驱动器C:的根目录的权限有关,我尝试直接从具有管理员权限(右键单击,以管理员身份运行)的Explorer窗口中运行.exe,并且该方法可以正常工作。

我会说这是一个许可问题。

也许您可以将输出重定向到其他位置的文件?

更新

我更改了批处理文件,以便dir命令重定向到我的桌面,并且可以正常运行。

从C#调用时,我也对此有疑问。 我通常使用的解决方法是在运行命令时实际允许它显示窗口。 不确定为什么会有所不同,但过去对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM