Скрипт, чтобы проверить, существует ли принтер локально, и если да, удаляет его - PullRequest
5 голосов
/ 21 декабря 2011

Я пишу пакетный файл Windows и должен проверить, существует ли печать на локальном компьютере, и, если это так, удаляет подключенный принтер с компьютера.Вот код, который я использую для удаления принтера.

RUNDLL32 printui.dll,PrintUIEntry /n \\server\printerName /dn

Это прекрасно работает, но теперь мне нужно условное выражение перед этим, поэтому я проверяю, существует ли этот принтер первым.Затем запустите эту строку.Я не уверен, как написать это.

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

Вы можете попробовать что-то вроде этого, просто замените строку для поиска на принтер, который хотите найти.

For /F "Tokens=4 delims=\" %%I In ('reg query HKCU\Printers\Connections ^|find /I "560C"') Do If "%%I"==",,ServerName,HP DeskJet 560C" goto :REMOVE
goto :SKIP
:REMOVE
RUNDLL32 printui.dll,PrintUIEntry /n \\server\printerName /dn
:SKIP

Или просто запустите команду и, если она не существует, произойдет ошибка, еслиэто будет работать?

Надеюсь, это поможет!

1 голос
/ 09 декабря 2016

Вы можете просто пропустить проверку и запустить команду удаления в любом случае. Чтобы подавить всплывающее окно с ошибкой, просто добавьте параметр /q, как указано в документации rundll32 printui.dll . это дает:

RUNDLL32 printui.dll,PrintUIEntry /n \\server\printerName /dn /q
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...