Я пытаюсь создать пакетный файл для удаления локальных копий принтеров.Я работаю с принтерами тех же моделей, поэтому ежедневно я получаю около 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)
Заранее спасибо