gpt4 book ai didi

c# - 通过 C# 运行时无法识别 BCDEDIT

转载 作者:可可西里 更新时间:2023-11-01 12:59:46 28 4
gpt4 key购买 nike

当我尝试从我的 C# 应用程序运行 BCDEDIT 时,出现以下错误:

'bcdedit' is not recognized as an internal or external command, operable program or batch file.

当我通过提升的命令行运行它时,我得到了预期的结果。

我使用了以下代码:

            Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.FileName = @"CMD.EXE";
p.StartInfo.Arguments = @"/C bcdedit";
p.Start();
string output = p.StandardOutput.ReadToEnd();
String error = p.StandardError.ReadToEnd();
p.WaitForExit();
return output;

我也试过用

p.StartInfo.FileName = @"BCDEDIT.EXE";
p.StartInfo.Arguments = @"";

我尝试了以下方法:

  1. 检查路径变量 - 它们没问题。
  2. 从提升的命令提示符运行 visual studio。
  3. 放置完整路径。

我的想法用完了,知道为什么我会收到此错误吗?

如果还有其他方法也可以,我只需要命令的输出。谢谢

最佳答案

有一种解释是有道理的:

  1. 您正在 64 位机器上执行程序。
  2. 您的 C# 程序构建为 x86。
  3. bcdedit.exe 文件存在于 C:\Windows\System32 中。
  4. 尽管 C:\Windows\System32 位于您的系统路径中,但在 x86 进程中您受制于 File System Redirector .这意味着 C:\Windows\System32 实际上解析为 C:\Windows\SysWOW64
  5. C:\Windows\SysWOW64 中没有 32 位版本的 bcdedit.exe

解决方案是将您的 C# 程序更改为目标 AnyCPUx64

关于c# - 通过 C# 运行时无法识别 BCDEDIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14023051/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com