
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.