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

prior

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

DiableNoir

Mitglied 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
 
P

prior

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

LauxAimoEwa

Mitglied 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

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.693
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
 
L

LauxAimoEwa

Mitglied 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

BrandyJr

Mitglied seit
02.11.2003
Beiträge
3.707
Alter
38
Standort
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:
L

LauxAimoEwa

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

prior

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

LauxAimoEwa

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

prior

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

DiableNoir

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

prior

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

Vielen Dank
 
BrandyJr

BrandyJr

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

LauxAimoEwa

Mitglied 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

DiableNoir

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

LauxAimoEwa

Mitglied 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 eingabe warten

,

dos menu auf taste warten

,

batch tastendruck einlesen

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

Batch Tastendruck einlesen - Ähnliche Themen

  • Probleme mit dem DOS-Befehl "ren" in Batch-Dateien

    Probleme mit dem DOS-Befehl "ren" in Batch-Dateien: Hallo Community! In meinem Windows 10 (1909) ist die cmd.exe mit dem Zeitstempel 20.01.2020 17:01 und der Versionsnummer 10.0.18362.449...
  • Wie erzeuge ich per Batch eine Batch-Datei, wenn clip und exit darin vorkommen?

    Wie erzeuge ich per Batch eine Batch-Datei, wenn clip und exit darin vorkommen?: F:\ ist meine RAM-Disk, aber egal. Ich habe hier eine Batchdatei erstellt mit folgendem Inhalt: echo "%var1%%var2%%var3% | clip&del...
  • Lässt sich per Batch/CMD unter Win10 ermitteln, welche Major Release man hat?

    Lässt sich per Batch/CMD unter Win10 ermitteln, welche Major Release man hat?: Frohe Weihnachten. :) Lässt sich per Batch/CMD unter Win10 ermitteln, welche Major Release man hat? Also z.B 1511 oder 1903? Mit dem Befehl...
  • Batch called Taskkill.bat causes problems!

    Batch called Taskkill.bat causes problems!: I just created a simple batch and came into doubt. The command: taskkill /T /IM notepad.exe pause Lead to an endless loop in the cmd window...
  • 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