CSharp - 在它自己的情况下,当从 C# 应用程序运行时,批处理文件会失败,但是?

  显示原文与译文双语对照的内容
0 0

我正在尝试运行一个简单的批处理脚本来卸载 Windows 更新。

@echo off
REM uninstall windows update 2592687
wusa/uninstall/kb:2592687/norestart

当我从 命令行 运行这个程序时,它运行良好,但是当从 C# 控制台应用程序运行时

static void Main(string[] args)
 {
 string path = Path.GetFullPath("....kbunins.bat");
 ProcessStartInfo proc = new ProcessStartInfo(path);
 Process.Start(proc);
 }

安装程序遇到一个错误: 0 x8000ffff灾难错误消息搜索错误信息并且无法找到任何有用的信息,并且直接运行 cmd.exe 。

编辑:我已经构建应用程序并作为管理员运行安装程序,但更新仍然未被卸载。 我还在 File.Exists() 位中添加了一个文件,它。

什么会导致这个?

时间:原作者:5个回答

0 0

尝试编译你的应用程序。

转到bin文件夹。右键单击 EXE 文件并选择以管理员身份运行。

如果这样做,只需从代码( 如果你能做到) 分配管理员权限。

原作者:
0 0

尝试在运行前添加一个检查文件是否存在。 像这样的东西。

static void Main(string[] args)
{
 string path = Path.GetFullPath(@"C:UsersMeDesktopelloBatch.bat");
 if(File.Exists(path))
 {
 ProcessStartInfo proc = new ProcessStartInfo(path);
 Process.Start(proc);
 }
 else
 {
 Console.Write("File not at specified location.");
 }
}

如果可能的话,我建议你将批处理添加到项目( 或者将它的放置在与可执行文件相同的位置) 中,并按文件名引用它。

原作者:
...