我正在尝试创建批处理文件以删除打印机的本地副本。我正在使用相同型号的打印机,因此每天在打印机列表中大约有10-20个printer_name(copy#)实例。手动删除这些是非常繁琐的过程。因此,我决定找到一种自动化的方法。而且我只需要使用(copy#)
删除它们我的第一个想法是简单的rundll32 printui.dll,PrintUIEntry /dl /n "printer_name("*
,显然不起作用,因为通配符不能那样工作。因此,为了解决该问题,我可以使用findstr
或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(副本1),printer2(副本2)和printer3(副本1)
提前谢谢
答案 0 :(得分:1)
找到了一个超级简单的解决方案。而且如果有人需要,它看起来像这样
wmic printer where (name like '%%(copy %%') delete
信用归ConstanceJill