Batch Tastendruck einlesen

Diskutiere Batch Tastendruck einlesen im Programmierung Forum im Bereich Programmierung; HI, ich habe hier viele Batch Dateien z.B. eine um meinen server runter zu fahren, eine im ihn an zu pingen, eine zum restarten usw. Jetzt will...
#1
P

prior

Dabei seit
16.03.2007
Beiträge
28
HI,

ich habe hier viele Batch Dateien z.B. eine um meinen server runter zu fahren, eine im ihn an zu pingen, eine zum restarten usw.

Jetzt will ich mir eine Batch machen wo am anfang ein Menü kommt.

Drücke Taste 1 um den Server runter zu fahren
Drücke Taste 2 um den Server zu rebooten
...

Das habe auch soweit hinbekommen, auch wie ich zwischen den Programm abschnitten mit goto... hin und herspringe.

Leider weis ich nicht wie ich nach dem Menü das Programm auf einen Tastebdruck warten lasse. Ich weis net wie ich einen Tastendruck einlese.

Wenn ich einmal den gedrückten wert habe weis ich wieder wie es weitergeht.

Es wäre nett wenn mir jemand sagen könnte wie ich Tastendrücke einlese.

Danke mfg Prior
 
#2
DiableNoir

DiableNoir

Dabei seit
18.01.2004
Beiträge
6.069
Ich gehe mal davon aus, dass du die Batch auf Windows 2000 oder höher hast.

Du kannst eine Variable einlesen indem du schreibst:
Code:
echo.Drücke Taste 1 um den Server runter zu fahren
echo.Drücke Taste 2 um den Server zu rebooten
set /P MeineVariable=
Das Set /P hält deine Batch übrigends an, bis etwas eingegeben und mit der Eingabe-Taste bestätigt wurde.

Dann kannst du diese Variable mit einer IF-Bedingung verarbeiten und zur entsprechenden Marke springen:

Code:
if /i %MeineVariable%=="1" goto MarkeHerunterfahren
if /i %MeineVariable%=="2" goto MarkeIrgendwas
Hoffe du kommst jetzt damit weiter. :blush

BTW: Möchte bei der Gelegenheit auf mein Shutdown-Programm hinweisen, da kannst du das ganze auch GUI-gesteuert erledigen und auf mehrere Rechner gleichzeitig anwenden. :D
 
#3
P

prior

Dabei seit
16.03.2007
Beiträge
28
Danke für deine Antwort, so halb funktioniert das schon. Nur leider, egal welche Nummer ich eingebe, jedesmal started der das Menü 1.




@echo off
:Start
echo -----------------------------------------------
echo Server Control by Tobias
echo -----------------------------------------------
echo.Druecke Taste 1 um den Server runter zu fahren
echo.Druecke Taste 2 um den Server zu rebooten
echo.Druecke Taste 3 um den Server an zu pingen
echo.Druecke Taste 4 um den Server zu mounten
echo.Druecke Taste 5 um den Explorer zu rebooten
echo.Druecke Taste 6 um das Programm zu schliessen
echo -----------------------------------------------

set /P in=

if /i %in%=="1" goto 1
if /i %in%=="2" goto 2
if /i %in%=="3" goto 3
if /i %in%=="4" goto 4
if /i %in%=="5" goto 5
if /i %in%=="6" goto 6

@echo off
:1
cd\
T:
cd Programme\pstools
psshutdown \\192.168.178.xx -u Administrator -p pw -f -k -t 1
pause
goto start

@echo off
:2
cd\
T:
cd Programme\pstools
psshutdown \\192.168.178.xx -u Administrator -p pw -f -r -t 1
pause
goto start

@echo off
:3
ping 192.168.178.xx
pause
goto start

@echo off
:4
NET USE N: \\fileServer\Tobias /USER:tobi pw /Persistent:NO
pause
goto start

@echo off
:5
kill/f explorer.exe
explorer.exe
goto start

@echo off
:6
exit



Villeicht findest du da meinen Fehler...
 
#4
L

LauxAimoEwa

Dabei seit
04.12.2006
Beiträge
2.003
Hi versuche mal Buchstaben als Sprungmarke - mir war so, als würde es mit Zahlen allein nicht klappen.

Wenn das auch nicht hilft kannst Du ja mal nach den Set ein
ECHO %IN%
pause

einstreuen. Vielleicht erkennt er den Rückgabewert nicht richtig...
 
#5
automatthias

automatthias

vernunftgeplagt
Dabei seit
21.04.2006
Beiträge
7.276
Bei den IF-Abfragen fehlen Gänsefüßchen:

so sollte es sein:
if /i "%in%"=="1" goto 1
if /i "%in%"=="2" goto 2
if /i "%in%"=="3" goto 3
if /i "%in%"=="4" goto 4
if /i "%in%"=="5" goto 5
if /i "%in%"=="6" goto 6
 
#6
L

LauxAimoEwa

Dabei seit
04.12.2006
Beiträge
2.003
Reicht dann nicht auch

goto %IN%

???

Wichtig! Wenn kein SET-Wert erkannt wird, geht er momentan immer auf die "1" - setzte hinter die IFs oder hinter das goto %IN% noch ein "goto 6", sodass er bei falschen Eingaben beendet und nicht den Server runterfährt!
 
#7
BrandyJr

BrandyJr

Dabei seit
02.11.2003
Beiträge
3.707
Alter
37
Ort
Berlin
Ich würde auch auf die Gänsefüsschen tippen. Ausserdem würde ich direkt nach den IF-Abfragen noch ein
Code:
echo Falsche Eingabe, probiers nochmal...
goto start
oder so ähnlich einfügen.
Sonst wird nämlich bei igendeiner falschen Eingabe grundsätzlich der Code nach :1 aufgerufen :)
Und so btw ein @echo off brauchst du nur einmal am Anfang der Batch und nicht in jedem Unterabschnitt.

@LauxAimoEwa
Das mit dem goto %in% hatte ich auch überlegt, aber bei einer falschen Sprungmarke bricht die Batch IMHO ab. Und nicht immer kann man die Fehlermeldung noch lesen, weil die so schnell verschwindet.
 
Zuletzt bearbeitet:
#8
L

LauxAimoEwa

Dabei seit
04.12.2006
Beiträge
2.003
Das mit dem goto %in% hatte ich auch überlegt, aber bei einer falschen Sprungmarke bricht die Batch IMHO ab. Und nicht immer kann man die Fehlermeldung noch lesen, weil die so schnell verschwindet.
Soweit ich weiss übergeht er bei Falsch eingabe nur die erste Goto Anweisung und läuft einfach weiter - aber egal, erstmal soll der prior mal das alles hier durchtesten ....;)
 
#9
P

prior

Dabei seit
16.03.2007
Beiträge
28
ok vielen Dank, ich habe alles gleichzeitig ausprobiert, die Zahlen durch buchstaben ersetzt, die Anführungsstriche und die unnötigen echo off's weggemacht. Jetzt geht es.

Ein Problem habe ich leider noch und hatte auch vorher schon, in meinem Programm der Abschnitt 5

Druecke Taste 5 um den Explorer zu rebooten

Wenn ich das vorher in der Batch ausgeführt habe, hat er meinen explorer gekillt und neu gestarted aber dann hat sich die batch nicht beendet, mit STRG und C kam ich nicht weiter und eine Eingabe konnte ich auch nicht machen. Das sieht so aus als würde er noch auf irgendetwas warten...

PS: Wer sich fragt wofür ich das brauche, ich habe auf meinem Desktop diese seitenteile von Ordnern usw. Die man ab Windows ME machen kann in dem man einfach einen Ordner an den Rand des Bildschirms zieht. Ich habe da meinen Server drinnen und wenn er einmal down ist ist der Streifen leer auch wenn der Server wieder on ist.

Deshalb kille ich meinen explorer und starte ihn neu und in dem Balken werden die Ordner und Dateien wieder angezeigt.
 
#10
L

LauxAimoEwa

Dabei seit
04.12.2006
Beiträge
2.003
Änder es so ab:

start /i explorer.exe


Dann startet er den Exploror ohne die Abhängigkeit der Batch-Datei...
 
#11
P

prior

Dabei seit
16.03.2007
Beiträge
28
ok vielen dank euch allen, jetzt funktioniert alles so wie ich es wollte.

EDIT: Was villeicht noch fehlt, wenn man irgendwas anderes eingibt, irgendwelche Buchstaben oder nur Enter drückt, führt er autom. Schritt 1 aus und mein Server fährt runter ^^

Gibt es mit einer if oder so die möglichkeit dann einen extra Schritt aufzurufen wo dann "Fehleingabe" oder so ausgegeben wird?
 
Zuletzt bearbeitet:
#12
DiableNoir

DiableNoir

Dabei seit
18.01.2004
Beiträge
6.069
Du hast doch eine Sprungmarke Start dann setze einfach das hier unter die ganzen IF-Bedingungen:

Code:
cls
echo.
echo.Falsche Eingabe! Zurück mit beliebiger Taste
pause > nul
goto Start
EDIT:

Das > nul unterdrückt die Aufforderung eine beliebige Taste zu drücken um fortzufahren. Du kannst es also entfernen wenn du diese Aufforderung nicht schon in deiner Fehlermeldung einbaust.
 
#14
BrandyJr

BrandyJr

Dabei seit
02.11.2003
Beiträge
3.707
Alter
37
Ort
Berlin
Jup und ich möchte nur mal so nebenbei daraufhinweisen, dass ich das in Post #7 schon geschrieben hatte :D
 
#15
L

LauxAimoEwa

Dabei seit
04.12.2006
Beiträge
2.003
... und ich habe das in Post #6 schon beschreiben, wie das umschifft werden kann ;-) (erster Ätsch!)
 
#16
DiableNoir

DiableNoir

Dabei seit
18.01.2004
Beiträge
6.069
Trotzdem hat er's übersehen und meins genommen....Ätsch bätsch :nana
 
#17
L

LauxAimoEwa

Dabei seit
04.12.2006
Beiträge
2.003
Er wollte Dich nur nicht beleidigen als "BÖSER ADMINISTRATOR":baaa :boxen
 
Thema:

Batch Tastendruck einlesen

Sucheingaben

batch auf tastendruck warten

,

cmd script warten auf eingabe

,

batch tastendruck warten

,
dos menu auf taste warten
, win 10 script tastatureingabe warten, batch file zahl einlesen, cmd tastatur abfragen, batch tastenabfrage, batch if tastendruck, mit batch tasten auslese, batch von tastatur einlesen, batch datei eingabe einlesen, html Befehl Warten auf Enter, batch tastendruck einlesen, batch eingabe einzelnes zeichen, cmd auf eingabe warten, batch sprung mit Tastendruck, batch tastendruck lese, bat warten auf benutzereingabe, cmd taste abfragen, Tastatur in Batchdatei abfragen, cmd abfrage tastendruck, .bat tastendruck, batch tastatureingabe

Batch Tastendruck einlesen - Ähnliche Themen

  • GELÖST Batch script kopieren von Autostart in Ordner der nach Username benannt ist.

    GELÖST Batch script kopieren von Autostart in Ordner der nach Username benannt ist.: Hallo ihr Lieben, Zu meiner Sittuation: Ich versuche ein Script zu erstellen das den Inhalt der Autostart von mehreren Usern auf einem...
  • Kommandozeilen Befehl in Batch nicht, am Prompt schon

    Kommandozeilen Befehl in Batch nicht, am Prompt schon: Hallo alle zusammen Ich habe eine Kommandozeile: for /f "skip=3 delims=" %i in ('dir /a-D /o-d /b *.*') do Del "%~i" Damit will ich alle...
  • Batch sprites aus txt dateien laden und bewegen/ ist es realiesierbar ein 3d batch spiel zu scripten

    Batch sprites aus txt dateien laden und bewegen/ ist es realiesierbar ein 3d batch spiel zu scripten: Hallo Winboard Community, Meine frage ist denke ich klar nun ich will das ganze aus dateien laden Wegen der übersichtlichkeit und das mit den 3d...
  • GELÖST Zeit per batch aktualisieren?

    GELÖST Zeit per batch aktualisieren?: Hallo! Ich hab hier einige PCs für Softwaretests rumstehen. Auf denen werden immer Images zurückgespielt wenn eine neue SW getestet werden soll...
  • Batch mit Tastendruck weiterleiten oder Beenden?

    Batch mit Tastendruck weiterleiten oder Beenden?: Hallo, Ich möchte, dass, wenn man z.B. die 1 Drückt man weitergeleitet wird, doch wenn man eine andere Taste betätigt sich das Fenster schließt...
  • Ähnliche Themen

    Oben