[英]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.