首页 > 解决方案 > 使用 (copy #) 删除本地打印机

问题描述

我正在尝试创建批处理文件以删除打印机的本地副本。我正在使用相同型号的打印机,所以每天我会在打印机列表中获得大约 10-20 个 printer_name(copy #) 实例。手动删除这些是非常繁琐的过程。所以我决定找到一种方法来自动化它。我只需要使用 (copy #) 删除那些

我的第一个想法很简单rundll32 printui.dll,PrintUIEntry /dl /n "printer_name("*,这显然行不通,因为通配符不是那样工作的。所以为了解决我可以使用的问题findstror find。我需要一个列表,在我的打印机列表中。所以我得到了打印机列表,wmic printer get name在这里我遇到了死胡同。由于会有很多打印机,最好的情况是将列表分配给一个数组,然后创建循环以从数组中检查所需的打印机并删除它们。哪里set list = wmic printer get name出错了。我假设我需要用来/n告诉脚本,新行是数组中的新条目。但我不知道如何将 wmic 的结果解析为数组

如果有任何关于如何删除所需打印机的更好的想法,我愿意提供更好的想法,或者我将不胜感激将列表附加到阵列的任何帮助。因为wmic printer get name打印这样的东西

printer1
printer2
printer2(copy 1)
printer2(copy 2)
printer3
printer3(copy 1)

正如我之前提到的,我只需要删除printer2(copy 1)、printer2(copy 2)和printer3(copy 1)

先感谢您

标签: batch-filewmic

解决方案


找到了一个超级简单的解决方案。如果有人需要它,它看起来像这样

wmic printer where (name like '%%(copy %%') delete

学分去康斯坦斯吉尔


推荐阅读