Batch Tastendruck einlesen

Diskutiere Batch Tastendruck einlesen im Programmierung Forum im Bereich Software Forum; 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...

prior

Threadstarter
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
 

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
 

prior

Threadstarter
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...
 

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...
 

automatthias

vernunftgeplagt
Dabei seit
21.04.2006
Beiträge
10.539
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
 

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!
 

BrandyJr

Dabei seit
02.11.2003
Beiträge
3.707
Alter
39
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:

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 ....;)
 

prior

Threadstarter
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.
 

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...
 

prior

Threadstarter
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:

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.
 

BrandyJr

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

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!)
 

DiableNoir

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

Batch Tastendruck einlesen

Batch Tastendruck einlesen - Ähnliche Themen

Vorinstalliertes McAfee von einem Windows 8 basierten Laptop KOMPLETT deinstallieren: Hallo zusammen, aus gegebenem Anlass musste ich mich leider mit dem Thema der korrekten Deinstallation von McAfee Internet Security und McAfee...
Hängt sich beim Runterfahren auf: einen schönen guten morgen an alle. so dann werde ich mal mein problem schildern. ich habe ein win7 64bit system welches sich immer nachdem ich...
Windows Fehler-Code Liste ...: hallo WB gemeinde ... bin eben über eine auf meinem alten USB stick gespeicherte fehlercode liste für windows gestolpert :aah . da hier oft...
Ratgeber: Geheime Hardware-Tricks: Oft können Grafikkarten, Kameras & Co. mehr, als der Hersteller zulässt. Mit unseren Tipps und Tools schalten Sie geheime Optionen frei oder...
TIP's für DOS und WINDOWS: Hallo Leute ich habe hier ein paar Tips die ich auch selber benutze vieleicht hilft ja etwas davon !!! Kosmetik Verknüpfungssymbole ohne Pfeil...

Sucheingaben

batch tastatur eingaben auswerten

,

batch auf eingabe warten

,

dos menu auf taste warten

,
batch tastendruck einlesen
, batch tastendruck warten, batch auf tastendruck warten, tasten abfrage mit batch, cmd script warten auf eingabe, batch von tastatur einlesen, batch datei eingabe einlesen, batch tastatureingabe, batch datei warte auf eingabe bestimmte zeit, windows batch tastendruck einlesen, Tastendruck einlesen batch, Batch Tastatureingabe ohne warten, batch pause bis tastendruck, tastatureingabe in batch datei, batch tastatur abfragen, batch warten auf tastendruck, dos auf taste warten, mit batch tasten auslese, batch eingabe einzelnes zeichen, cmd auf eingabe warten, batch sprung mit Tastendruck, batch tastendruck lese
Oben