我正在编写Windows批处理文件,需要检查本地计算机上是否存在打印,如果是,则从计算机中删除映射的打印机。这是我用来删除打印机的代码。
RUNDLL32 printui.dll,PrintUIEntry /n \\server\printerName /dn
这很好用,但现在我需要一个条件语句,所以我先检查一下这台打印机是否存在。然后运行该行。我不知道怎么写这个。
答案 0 :(得分:2)
您可以尝试这样的方法,只需将字符串替换为您要查找的打印机即可找到。
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 :(得分:1)
You can just skip the check and run your deletion command anyway.
To suppress the error popup just add the /q
option as specified in the rundll32 printui.dll documentation.
this yields:
RUNDLL32 printui.dll,PrintUIEntry /n \\server\printerName /dn /q