Stapelverarbeitung: Wie kann ich prüfen, ob ein im Netzwerk gemeinsam genutzter Drucker vorhanden ist?

Stapelverarbeitung: Wie kann ich prüfen, ob ein im Netzwerk gemeinsam genutzter Drucker vorhanden ist?

Ich kann prüfen, ob ein Netzwerkordner vorhanden ist

IF EXIST \\192.168.1.2\SharedFolder\ (echo It exist)

aber ich aktiviere nicht die Prüfung, ob ein Netzwerkdrucker vorhanden ist.

IF EXIST \\192.168.1.2\printername (echo It exist)

Antwort1

Die folgendeSkript von Robvanderwoude.comTests auf Vorhandensein eines Druckers:

REM NOTE: RUNDLL32.exe and PRINTUI.exe always return Errorlevel=0
REM The trick: Try to get the printer settings into a file
REM If No file is created = The Printer does not exist
SET PrinterName=FIT FP-32L Raster
SET TESTfile=%TEMP%\PrtExist.txt

REM Delete %TESTfile% to avoid false positives
DEL %TESTfile% /F /Q

REM Try to get the printer settings into a file
RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /Xg /n "%PrinterName%" /f "%TESTfile%" /q

IF EXIST "%TESTfile%" (
    ECHO %PrinterName% printer exists
) ELSE (
    ECHO %PrinterName% printer does NOT exists
)

PAUSE

Antwort2

Ich bin auf dieses Thema gestoßen, als ich nach einer Möglichkeit gesucht habe, meine deleteprinters.bat zu verbessern, um diese Popup-Meldungen „Drucker nicht gefunden“ zu umgehen, die mein Skript unterbrechen.

In diesem Fall ist es jedoch am einfachsten, den Parameter /q nach RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry hinzuzufügen.

Nur für den Fall.

verwandte Informationen