Batch der zwischen Ip-Ranges oder Computernamen unterscheidet und dementsprechenden Standartdrucker auswählt
Hallo Zusammen
Ich will einen Batch schreiben, der die IP-Ranges aussliesst und dementsprechend den richtigen Drucker als Standartdrucker nimmt. Wir haben hier 2 Zimmer und in jedem sind 13 Notebooks. Da sollte nun ein Batch beim Start ausgeführt werden, der auslieest in welchem Zimmer(Range) man sich befindet und dann diesen Drucker als Standart nimmt. Vileicht könnte man es auch mit dem Computernamen einteilen, da sie ebenfalls die Zimmernummer enthalten.
Bis jetzt habe ich ein wenig was rumprobiert, bin aber nie wirklich auf was richtiges gekommen. =(
Details:
IP des ersten Zimmers -> 10.65.8.x
Laptopnamen -> LAPUEK23-01 , LAPUEK23-02, LAPUEK23-03 u.s.w ---> die 23 steht für das Zimmer <---
Drucker -> 10.65.8.199
IP des zweiten Zimmers -> 10.65.10.x
Laptopnamen -> LAPUEK24-01 , LAPUEK24-02, LAPUEK24-03 u.s.w ---> die 24 steht für das Zimmer <---
Drucker -> 10.65.10.199
Bitte um ausführliche Hilfe/Lösungen.
Freundliche Grüsse
Hans
[Edit Biber] Codeformatierung [/Edit]
Ich will einen Batch schreiben, der die IP-Ranges aussliesst und dementsprechend den richtigen Drucker als Standartdrucker nimmt. Wir haben hier 2 Zimmer und in jedem sind 13 Notebooks. Da sollte nun ein Batch beim Start ausgeführt werden, der auslieest in welchem Zimmer(Range) man sich befindet und dann diesen Drucker als Standart nimmt. Vileicht könnte man es auch mit dem Computernamen einteilen, da sie ebenfalls die Zimmernummer enthalten.
Bis jetzt habe ich ein wenig was rumprobiert, bin aber nie wirklich auf was richtiges gekommen. =(
::Variable setzen
set pc=%computername:~0,6%
set zimmer=%computername:~6,2%
set pcnr=%computername:~9,2%
:: Drucker für Zimmer 23 Mappen
if "%zimmer%"=="23" (
rundll32 printui.dll,PrintUIEntry /in /n /y \\10.65.8.199\
)
:: Drucker für Zimmer 24 Mappen
if "%zimmer%"=="24" (
rundll32 printui.dll,PrintUIEntry /in /n /y \\10.65.10.199\
)
IP des ersten Zimmers -> 10.65.8.x
Laptopnamen -> LAPUEK23-01 , LAPUEK23-02, LAPUEK23-03 u.s.w ---> die 23 steht für das Zimmer <---
Drucker -> 10.65.8.199
IP des zweiten Zimmers -> 10.65.10.x
Laptopnamen -> LAPUEK24-01 , LAPUEK24-02, LAPUEK24-03 u.s.w ---> die 24 steht für das Zimmer <---
Drucker -> 10.65.10.199
Bitte um ausführliche Hilfe/Lösungen.
Freundliche Grüsse
Hans
[Edit Biber] Codeformatierung [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 182116
Url: https://administrator.de/forum/batch-der-zwischen-ip-ranges-oder-computernamen-unterscheidet-und-dementsprechenden-standartdrucker-auswaehlt-182116.html
Ausgedruckt am: 22.04.2025 um 15:04 Uhr
12 Kommentare
Neuester Kommentar
Moin
Also ich sehe es schon...
Mit dem Parameter /in wird die Verbindung zu einem freigegebenen Netzwerkdrucker eingerichtet. Dazu gehört dann aber auch der Syntax \\<Server>\<Freigabe>
Gruß
Hubert
edit: Die Zuweisung abhängig von der IP-Adresse ist übrigens denkbar einfach:
Zitat von @bastla:
Sorry, ich sehe das Problem nicht - Dein Batch sollte doch bereits funktionieren ...
Sorry, ich sehe das Problem nicht - Dein Batch sollte doch bereits funktionieren ...
Also ich sehe es schon...
Mit dem Parameter /in wird die Verbindung zu einem freigegebenen Netzwerkdrucker eingerichtet. Dazu gehört dann aber auch der Syntax \\<Server>\<Freigabe>
Gruß
Hubert
edit: Die Zuweisung abhängig von der IP-Adresse ist übrigens denkbar einfach:
ping -4 -n 1 %computername% | find "10.65.8" && rundll32 printui.dll,PrintUIEntry (...)
Hallo Hans.ds!
Hatte leider nur das Zerlegen des Computernamens getestet ...
Grüße
bastla
[Edit] @hubertn: Jetzt hab ich's auch gesehen [/Edit]
Hatte leider nur das Zerlegen des Computernamens getestet ...
Muss ich ausser der IP Adresse des Druckers noch den Namen oder irgendwas angeben?
Ja, und vor allem die Parameter in der richtigen Reihenfolge einsetzen - der Name muss nach "/n" angegeben werden, daher diesen Parameter als letzten verwenden ...Grüße
bastla
[Edit] @hubertn: Jetzt hab ich's auch gesehen [/Edit]
Nein
lies mal hier: http://www.gruppenrichtlinien.de/index.html?/howto/rundll32_printui.htm
noch mal edit: irgendwie habe ich auch das Gefühl, dass du keinen Netzwerkdrucker im eigentlichen Sinne hast. Wenn du den Drucker als lokalen Drucker verbinden willst, der über das Netzwerk auf der angegebenen IP erreichbar ist, dann kann das so nicht funktionieren. Dein Script setzt voraus, dass du irgendwo einen Server hast, an dem der Drucker freigegeben ist.
lies mal hier: http://www.gruppenrichtlinien.de/index.html?/howto/rundll32_printui.htm
noch mal edit: irgendwie habe ich auch das Gefühl, dass du keinen Netzwerkdrucker im eigentlichen Sinne hast. Wenn du den Drucker als lokalen Drucker verbinden willst, der über das Netzwerk auf der angegebenen IP erreichbar ist, dann kann das so nicht funktionieren. Dein Script setzt voraus, dass du irgendwo einen Server hast, an dem der Drucker freigegeben ist.
Hallo Hans.ds!
Laufvariablen von "
Ein "
Grüße
bastla
Laufvariablen von "
for
"-Schleifen existieren nur, solange die Schleife noch läuft - aber wenn Du nur den ersten gefundenen Wert verwenden willst, kannst Du so vorgehen:@echo off & setlocal
set "Range="
for /f "tokens=13 skip=6 delims=." %%i in ('ipconfig') do if not defined Range set "Range=%%i"
echo %Range%
pause
" am Ende sollte nicht nötig sein, denn das Testen von Batches wirst Du doch hoffentlich durch Aufruf aus einer CMD-Shell heraus vornehmen ...Grüße
bastla