Назад | Перейти на главную страницу

пакет windows xp - проверьте, существует ли принтер

Я ищу пакетную функцию, чтобы проверить, существует ли уже принтер в системе Windows XP.

Я составил следующий сценарий:

set PRINTEREXISTS=0
For /F "Tokens=8 delims=\" %%I IN ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers" ^|find /I"r016-printer01"') Do (
    echo %%I
    set PRINTEREXISTS=1
)
if "%PRINTEREXISTS%"=="0" (
    echo Printer doesn't exist
) else (
    echo Printer exists
)

Однако иногда это выводит имя принтера, а затем Printer doesn't exist хотя этого не должно быть из-за PRINTEREXISTS=1... (НЕ проблема запроса reg, но каким-то образом с пакетным скриптом)

Любые идеи?

Пакетный файл? Почему бы хотя бы не vbscript. Что-то вроде:

strPrinterName ="r016-printer01"

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer where name = '" & strPrinterName & "'")

If colPrinters.Count <> 0 Then

       wscript.echo "Printer exists" 

else

       wscript.echo "Printer doesn't exist"

End If