我想从我的应用程序运行以下代码:
manage-bde -protectors -disable C:
如果我打开命令提示符并从那里运行(win8),它的工作正常。
但如果我尝试从我的应用程序运行它,我会得到:'manage-bde' is not a recognized program.
我的代码:
process1.StartInfo.RedirectStandardOutput = true;
process1.StartInfo.UseShellExecute = false;
process1.StartInfo.CreateNoWindow = false;
process1.StartInfo.FileName = @"cmd.exe";
process1.StartInfo.Arguments = @"/C manage-bde -protectors -disable C:";
process1.Start();
我错过了什么?
答案 0 :(得分:2)
失败原因:
cmd.exe无法识别您的文件manage-bde
以继续操作。
您可以通过为文件manage-bde
提供正确的路径来解决此问题。
解决方案1: 从C#运行任何控制台命令时,默认情况下它们将从以下路径运行:
如果您在发布模式下运行项目 - &gt; <Solution FolderName>\<Project FolderName>\bin\Release
如果您在调试模式下运行项目 - &gt; <Solution FolderName>\<Project FolderName>\bin\Debug
因此,如果您想从c#代码运行任何第三方exe文件,请确保将它们(exe文件)复制到相应的文件夹中。
解决方案2 :您可以在环境变量中设置manage-bde
的路径
解决方案3:
您可以在代码中提供manage-bde
的完整路径。
示例代码:这里我提供了我想要执行的exe / bat文件的完整路径:
Process process1 = new Process();
process1.StartInfo.RedirectStandardOutput = true;
process1.StartInfo.UseShellExecute = false;
process1.StartInfo.CreateNoWindow = false;
process1.StartInfo.FileName = @"cmd.exe";
process1.StartInfo.Arguments = @"/C C:\apache-jmeter-2.9\apache-jmeter-2.9\bin\jmeter.bat";
process1.Start();