【问题标题】:C# Start Process: The system cannot find the file specified even though it shouldC#启动进程:系统找不到指定的文件,即使它应该
【发布时间】:2019-09-26 20:58:01
【问题描述】:

我正在寻找启动一个运行 wbadmin 的进程。

当我打开命令行并键入“wbadmin”时,它可以在任何地方工作。 wbadmin.exe 位于 C:\Windows\System32

但是当我尝试在我的 c# 应用程序中启动一个进程时,我总是得到错误:

系统找不到指定的文件

这是我的代码:

var info = new ProcessStartInfo("wbadmin.exe");
info.UseShellExecute = false;
info.RedirectStandardOutput = true;
info.CreateNoWindow = true;

var process = Process.Start(info);

var output = process.StandardOutput.ReadToEnd();
process.WaitForExit();

Console.WriteLine(output);

当我使用“explorer.exe”运行相同的程序时,它工作得很好。

不确定我能做什么。将不胜感激我能得到的任何帮助。 谢谢

【问题讨论】:

  • 无复制。代码只是运行并返回帮助文本
  • 这很奇怪。那可能是什么导致了这个问题?正如我所说,如果我只是在命令行中输入“wbadmin”,它对我有用
  • 您是否在 64 位操作系统上运行 32 位应用程序?在这种情况下,对 System32 的调用将被重定向到 WOW64 文件夹。
  • 不确定,我有 64 位架构,根据架构的不同,wbadmin 有不同的版本吗?
  • 您可以尝试将参数指定为“wbadmin”而不是“wbadmin.exe”

标签: c# process


【解决方案1】:

explorer.exeC:\Windows 下,而不是在System32 下。 作为解决方案,请尝试提供wbadmin.exe 的完整路径:C:\Windows\System32\wbadmin.exe

【讨论】:

  • 没关系,可执行文件在路径中。代码运行良好
  • 也许他从路径变量中删除了它。
  • wbadmin 在 System32 中,而不是在 Windows 中。如果该文件夹不在路径中,则会出现 很多 错误
  • 为了确定而试了一下,但不,它给出了同样的错误。如果我在命令行中输入它怎么会起作用
  • wbadmin 只是打印一个文本然后终止它的执行,当你从C# 运行它时,它将打开一个控制台,打印文本,因此文本被打印,wbadmin 将退出,控制台消失。它有效,但您看不到效果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多