Jump to content

Batch zur Druckerauswahl in Abhängigekti von der IP des DHCP-Servers


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Beisammen,

ich versuche mittels Batch im Autostart den Standarddrucker in Abhängigkeit davon automatisch zu verändern, ob ich im Home office (DHCP-Server ist eine Fritzbox mit Standardenstellung, d.h. 192.168.178.1) oder im Büro (DHCP-Server dort 110.XXX.YY.1) bin.

 

ping -n 1 192.168.178.1
if not %errorlevel% 1 goto ZUHAUSE
:NICHTZUHAUSE
rundll32 printui.dll,PrintUIEntry /y /n "Ineo Kopierer"
goto ENDE
:ZUHAUSE
rundll32 printui.dll,PrintUIEntry /y /n "Xerox WorkCentre"
:ENDE

Ich habe bisher zwei Batchfiles "Ineo,bat" und "Xerox.bat" mit den betr. Zeilen ("rundll32 printui.dll,PrintUIEntry /y /n "Ineo Kopierer" oder "rundll32 printui.dll,PrintUIEntry /y /n "Xerox WorkCentre" ) die funktionieren, d.h. stellen die Standarddruckereinstellung um, wenn ich auf den einen oder anderen Batchfile clicke. Das soll nun also automatisiert werden.

Ich verstehe die errorlevel-Ausgabe des ping Befehls so, das 0 = kein Fehler, und 1 bis X irgendein Fehler ist, aber bei Verwendung von if der errolevel 1 imer auch die errolevel 2 bis n umfasst, so dass das if errolrlevel 0 immer wahr wäre. Daher habe ich hier mit "if not" gearbeitet: immer, wenn nicht Fehler .1 bis n vorliegt, bin ich zuhause, d.h. soll der Xerox der Standarddrucker sein. 

Aber: es fiunktioniert dennoch nicht. Was ist hier mein Denkfehler?

bearbeitet von JKW
Link zu diesem Kommentar

Moin,

 

zwei Dinge:

  1. Es sollte heißen IF NOT %ERRORLEVEL% == 1 GOTO ZUHAUSE
  2. seit irgendeiner Windows-Version (7?) ist bei ping "Zielhost nicht erreichbar" eine legitime Antwort und resultiert im Errorlevel 0. Das passiert z.B. wenn das Ziel im gleichen Subnetz liegt, aber halt nicht erreichbar ist. Da musst Du schauen, ob es Dir präzise genug ist ;-) 
Link zu diesem Kommentar

Moin und Danke

Zitat

Das passiert z.B. wenn das Ziel im gleichen Subnetz liegt, aber halt nicht erreichbar ist. Da musst Du schauen, ob es Dir präzise genug ist

Da könmnte vielleicht diese Idee helfen

Ping -n 1 192.168.178.1 | Find "TTL="  >Nul  && Echo host is reachable - nur scheint der in win 10 nicht zu funktionieren ...

 

Zitat

seit irgendeiner Windows-Version (7?) ist bei ping "Zielhost nicht erreichbar" eine legitime Antwort und resultiert im Errorlevel 0.

Weist Du zufällig, wie ich mir in der Powershell anzeigen kann, welchen Errorelevel auf den Pinbg hin zurück kommt?

Erfolglos probiert:

- Ping -n 1 192.168.178.1 | echo %%errorlevel%%

- Ping -n 1 192.168.178.1 | echo %errorlevel%

- Ping -n 1 192.168.178.1 | Find "TTL=" echo %errorlevel%

Besten Dank!

 

Link zu diesem Kommentar

Dankeschön,

Damit kontte ich das Verhalten, dass Errorcode = 0 wenn eine IP im gleichen Subnetz angepingt wird, aber halt nicht erreichbar ist, verifzieren. 

Aber auch, dass , dass Errorcode = 1 wenn eine IP, die nicht im gleichen Subnetz liegt, angepingt wird.

Damit werde ich mal mein Batchfile testen wenn ich aus dem HomeOffice wieder ins Büro gehe - also Mitte nächsten Jahres.

 

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...