angelo131095
Goto Top

Batch Drucker Script

Guten Tag,

mein Name ist Angelo, ich Helfe unserem Administrator in der Schule und habe ein Script für die Drucker geschrieben.

wenn ich es ausführe und eine Zahl für den Raum eingebe wird immer nur der Drucker von Raum 1 als Standard eingestellt.

was mache ich falsch? kann mir jemand helfen?

mir freundlichen Grüßen Angelo

PS: Hier der Code

@echo off
chcp 1252
 
echo in welchem Raum sind Sie?
echo --------------------------
echo 1 - Raum 1
echo 2 - Raum 2
echo 3 - Raum 3
echo 4 - Raum 4
echo 5 - Raum 5
echo 6 - Raum 6
echo 7 - ÜFA
set /p Raum=Eingabe (1/2/3/4/5/6/7): 
if %Raum%==1 set drucker=KLH-Raum-1-CX510de
if %Raum%==2 set drucker=KLH-Raum-2-CX510de
if %Raum%==3 set drucker=KLH-Raum-3-CX510de
if %Raum%==4 set drucker=KLH-Raum-4-CX510de
if %Raum%==5 set drucker=KLH-Raum-5-CX510de
if %Raum%==6 set drucker=KLH-Raum-6-CX510de
if %Raum%==7 set drucker=KLH-Raum-ÜFA-CX510de
 
echo.
echo Drucker wird als Standarddrucker eingerichtet.
echo. 
 
:drucker1
echo Definiere als Standarddrucker
rundll32 printui.dll,PrintUIEntry /y /n KLH-Raum-1-CX510de
echo Drucker erfolgreich als Standard gesetzt
echo.
pause
exit

:drucker2
echo Definiere als Standarddrucker
rundll32 printui.dll,PrintUIEntry /y /n KLH-Raum-2-CX510de
echo Drucker erfolgreich als Standard gesetzt
echo.
pause
exit
  
:drucker3
echo Definiere als Standarddrucker
rundll32 printui.dll,PrintUIEntry /y /n KLH-Raum-3-CX510de
echo Drucker erfolgreich als Standard gesetzt
echo.
pause
exit

:drucker4
echo Definiere als Standarddrucker
rundll32 printui.dll,PrintUIEntry /y /n KLH-Raum-4-CX510de
echo Drucker erfolgreich als Standard gesetzt
echo.
pause
exit

:drucker5
echo Definiere als Standarddrucker
rundll32 printui.dll,PrintUIEntry /y /n KLH-Raum-5-CX510de
echo Drucker erfolgreich als Standard gesetzt
echo.
pause
exit

:drucker6
echo Definiere als Standarddrucker
rundll32 printui.dll,PrintUIEntry /y /n KLH-Raum-6-CX510de
echo Drucker erfolgreich als Standard gesetzt
echo.
pause
exit

:drucker7
echo Definiere als Standarddrucker
rundll32 printui.dll,PrintUIEntry /y /n KLH-Raum-ÜFA-CX510de
echo Drucker erfolgreich als Standard gesetzt
echo.
pause
exit

Content-ID: 310371

Url: https://administrator.de/contentid/310371

Ausgedruckt am: 26.11.2024 um 01:11 Uhr

St-Andreas
Lösung St-Andreas 20.07.2016 um 16:31:32 Uhr
Goto Top
Hallo,

vor Zeile 26 fehlt Dir das "goto"
Biber
Lösung Biber 20.07.2016 aktualisiert um 16:50:31 Uhr
Goto Top
Moin Angelo101395,

willkommen im Forum.
Ergänzend zu St. Andreas:

  • Entweder du machst es mit goto :zumDruckerX - aus diesem Gedanken heraus hast du ja die Sprungmarken :drucker1 ...:drucker7 angelegt.

  • Oder du machst es ohne "goto" und nutzt die angelegten Variablen.

Dann verkürze nach Zeile 21 auf
...
echo.
echo Drucker %drucker% wird als Standarddrucker eingerichtet.
echo. 
 

echo Definiere als Standarddrucker %drucker%
rundll32 printui.dll,PrintUIEntry /y /n %drucker%
echo Drucker %drucker% erfolgreich als Standard gesetzt
echo.
pause
goto :eof

Beide Strategien parallel - Sprungmarken definieren, die nirgends angesprungen werden und Variablen definieren, die nirgends verwendet werden...
-> das kann nicht funktionieren.
Beim Programmieren musst du überzeugt davon sein, dass EINE der vielen möglichen Strategien zum Ziel führt und diese durchziehen.

Grüße
Biber
P.S. Rein handwerklich: du musst natürlich damit rechnen, dass der Benutzer durchschnittlich doof ist und KEINE der Ziffern 1 bis 7 eingibt, sondern eine 42 oder ein "x" oder nur ENTER drückt.
Also diesen Fall abfangen ( if not defined drucker echo Nix gewählt & goto :eof)
Angelo131095
Angelo131095 20.07.2016 um 18:15:16 Uhr
Goto Top
vielen Dank @Biber für die schnelle hilfe hat geklappt