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

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

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

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

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:
#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.
 
#13
P

prior

Threadstarter
Dabei seit
16.03.2007
Beiträge
28
ok super, das funktioniert.

Vielen Dank
 
#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

,

dos menu auf taste warten

,
batch tastendruck warten
, win 10 script tastatureingabe warten, batch tastenabfrage, batch if tastendruck, mit batch tasten auslese, batch von tastatur einlesen, batch datei eingabe einlesen, batch tastatureingabe, batch datei warte auf eingabe bestimmte zeit, windows batch tastendruck einlesen, batch tastatur eingaben auswerten, cmd tastatur abfragen, batch file zahl 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 Tastendruck einlesen - Ähnliche Themen

  • [Batch] Dateien in bestimmter Menge in noch nicht vorhandene Ordner verschieben

    [Batch] Dateien in bestimmter Menge in noch nicht vorhandene Ordner verschieben: Hallo ihr, ich hab da ein Problemfall den ich gerne mit einer Batch lösen wollen würde. Folgende Ausgangssituation: Ich habe einen Ordner mit...
  • Sie müssen eine App für diese Aufgabe installieren bei Batch-Datei

    Sie müssen eine App für diese Aufgabe installieren bei Batch-Datei: Hallo liebe Community, Wenn ich eine batch-Datei unter Windows 10 starten möchte, kommt immer das Fenster "App im Store suchen? Sie müssen eine...
  • 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 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