【问题标题】:Is it possible to perform an uninstallation of several installed applications with a batch-file?是否可以使用批处理文件卸载多个已安装的应用程序?
【发布时间】:2019-08-30 13:17:47
【问题描述】:

我想卸载 12 个应用程序。我想通过批处理文件来完成。我想自动化卸载过程。

我想做什么:

  1. 检查是否安装了应用程序 (如果是,请转到第 2 步;如果不是,请转到第 3 步)

  2. 检查应用程序是否正在运行 (如果是,结束流程;如果不是,转到步骤 3)

  3. 开始卸载 (卸载完成后每 3 秒检查一次) 第 3 步对我来说是最令人困惑的一步 我google了一下,发现你可以检查application.exe是否正在运行,并检查卸载过程是否仍在运行

4.如果卸载完成 -->开始卸载下一个应用程序

但是,这可以通过批处理文件实现吗? 我对编程很陌生。请大发慈悲

问候

【问题讨论】:

标签: batch-file


【解决方案1】:

(公式化为答案,因为它对于评论来说太大了)

您所问的,也许是可能的,但并不是那么简单:您可以启动以下查询来获取已安装的产品:

wmic product list

这可能会为您提供已安装产品的列表,但某些产品(如 Notepad.exe)不在该列表中,因此请小心。
此外,已安装的产品和应用程序名称(您可以使用 tasklist 找到)之间的链接也不是那么简单。

我的印象是您有一个包含 12 个要检查的应用程序的修复列表,并且您正在寻找一种通用的方法来卸载所有这些应用程序。我担心,如果不是所有这些产品都相似,那么您可能需要另一种方法来完成其中一些产品的工作。

【讨论】:

  • WMIC Product 使用 Win32_Product 类,它只表示使用 Windows Installer 的安装,(例如 .msi 文件)。
  • @Dominique 感谢您的快速回复。这 12 个应用程序类似,也列在“产品列表”下。当我开始卸载时,我怎么知道它是否已经完成?我卸载了其中一个应用程序,名称只是作为进程运行的 application1.exe。那么我可以用它来检查“卸载状态”吗?
  • @DeheiBide,当您从命令提示符窗口运行WMIC Product Where "Name='Some Application 2018'" Call Uninstall 时,在将焦点返回到提示符之前卸载是否未完成? (即它是否启动卸载例程,然后在第一行完成之前开始下一行)?
  • 好的。显然我不需要检查卸载是否正在运行,因为它说“正在执行”并且在完成之前不会转到下一个命令。这很容易:)。谢谢 Dominique 和 Compo
【解决方案2】:

如果 GUI 对您来说是一个合适的选项并且您不需要它是命令行,那么 BCUninstaller 将为您的 Windows 程序进行批量卸载和清理:https://sourceforge.net/projects/bulk-crap-uninstaller/

【讨论】:

    猜你喜欢
    • 2014-01-18
    • 2016-06-21
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 2012-10-17
    相关资源
    最近更新 更多