Я ищу пакетную функцию, чтобы проверить, существует ли уже принтер в системе 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