8.2k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von Einsteiger_in (27 Punkte)
Hallo liebes Forum,
Ich bin hier im Forum neu und hoby batch Programmiren.
Habe bis her nur klein kram gemacht so was was einer von euch einfach mal so aus den handgelenk schüttelt.

Nun möchte ich mich den aber mal doch an ein Größeres Projekt wargen.
Jetzt scheiter ich aber schon an den ersten gedanken.

Und zwar ist mein Problem/Gedanke das ich die F Tasten in der Batch benutzen möchte.

Also Drücke F2 um das Progrmm zu starten so etwas und ohne eingabe der Enter Taste hinterher.

Gibt es da eine Möglichkeit oder Alternative ansätze bin für Vorschläge offen.


Danke in Forraus.

18 Antworten

0 Punkte
Beantwortet von ralfman Experte (2.1k Punkte)
Klar, Du mußt nur die choice.com in Dein system32 Verzeichnis Kopieren.
Nur auf anderen Systemen wird das leider nicht funktionieren, da dort die choice.com nicht Existiert. Auch auf 64 Bit Systemen kappt das garantiert nicht, aber das liegt an choice.

Ralf
0 Punkte
Beantwortet von Einsteiger_in (27 Punkte)
Danke für deine antwort.

köntest du mir bitte mal den syntax erklären ?
0 Punkte
Beantwortet von ralfman Experte (2.1k Punkte)
Klar kann ich ;-)

ECHO.
ECHO.
ECHO K Eine Aktion
ECHO A Noch 'ne Aktion
ECHO S Und schon wieder Passiert was
ECHO X Hopla, auch hier geschieht was
ECHO F Und schon wieder 'ne Aktion
ECHO V Auch nicht übel
ECHO D Ist doch gar nicht schwer
ECHO G G drücken? Warum nicht
ECHO P Pah, mach ich doch
ECHO N Mal sehn was Passiert
ECHO R Der Text geht mir aus
ECHO L Spot aus, Licht an!
ECHO E Eben 'darum solls ja sein
ECHO 9 Nun reicht es aber
ECHO.
ECHO.
CHOICE /c:KASXFVDGPNRLE9 Wähle eine Option...
IF ERRORLEVEL 14 GOTO HST
IF ERRORLEVEL 13 GOTO EDI
IF ERRORLEVEL 12 GOTO LESE
IF ERRORLEVEL 11 GOTO ER
IF ERRORLEVEL 10 GOTO NTF
IF ERRORLEVEL 9 GOTO PQD
IF ERRORLEVEL 8 GOTO DW
IF ERRORLEVEL 7 GOTO DC
IF ERRORLEVEL 6 GOTO VOLL
IF ERRORLEVEL 5 GOTO FORM
IF ERRORLEVEL 4 GOTO XFD
IF ERRORLEVEL 3 GOTO S0K
IF ERRORLEVEL 2 GOTO ASTR
IF ERRORLEVEL 1 GOTO KE


Zur Erklärung,
Echo. macht eine Leerzeile (sieht nur hübscher aus).

Die weiteren Echo Anweisungen geben nur Text aus.

choice /c: musst Du so auf jeden fall Tippen, danach ohne lücke die Zeichen die Du abfangen möchtest (Überseh die lücke nicht nach choice).

IF ERRORLEVEL 'n' GOTO ist eine Sprungadresse (frag wenn Du noch nicht damit umzugehen weist) ("n" ist der Abzufangende Errorlevel).

WICHTIG!!! Das Abfangen der Errorlevel beginnt immer von unten nach oben. Daher steht Errorlevel 14 oben unt Errorlevel 1 ganz unten.

Und wenn Du dann zur Sprungadresse gehüpft bist, kannst Du die nächste Choice Anweisung Schreiben und die selben Zeichen mit anderen Sprungadressen Verwenden (drei mal hintereinander auf X drücken, und jedesmal erschein ein anderes Menü, ich hoffe mal das kommt einigermaßen Verständlich rüber).

Ralf
0 Punkte
Beantwortet von ralfman Experte (2.1k Punkte)
und mit t, sowas ist mir auch noch nicht Passiert, aber das muss am Wetter liegen, da ist die Konzentration völlig am Boden. Aber als erstes werd ich die Katze vom Schreibtisch schubsen und 'nen Blatt Papier zusammenknüllen. Dann ist sie Beschäftigt und ich hab meine Ruhe :-)

Ralf
0 Punkte
Beantwortet von Einsteiger_in (27 Punkte)
Danke schon mal dafür.
Ja sprung marken kenne ich schon und ja das ist das was ich will (eigentlich zwar mit den F-tasten aber das tut es auch)

Aber eine frage wann wir der errorlevel auf 1 oder 2 gesetzt und warum goto KE
wenn ich nur nach k oder e will ?
0 Punkte
Beantwortet von ralfman Experte (2.1k Punkte)
Bleiben wir beim Beispiel K. K ist die Taste die gedückt wird, und KE ist die Sprungmarke. Genausogut hätte dort auch XYZ stehen können.
Das ist ein Schnipsel aus einer Batch die ich vor ewigkeiten mal gebastelt hab (ich habe nur die Aktionen ersetzt), also nicht weiter wundern. Die Errorlevel werden vom höchsten zuerst abgefragt (also 256) und danach heruntergezählt. Deshalb den niedrigsten zum Schluss denn Batch ist Zeilenorientiert.

Ich habe vor vier Jahren mal 'nen Aprilscherz gebastelt (ohne choice) 89KB "groß" [immerhin über 3700 Zeilen, selbstvernichtend ala Mission Impossible, Farbspielereien und einer netten Unterhaltung mit Deinem Rechner. Brauchst nur 'ne viertel Stunde Zeit und einige Tage um den Quellcode zu durchforsten], wenn Du willst, schicke ich Dir den zum Anschauen und Lernen gern zu. Mußt mir nur über den Pager Deine email Adresse geben.

Ralf
0 Punkte
Beantwortet von Einsteiger_in (27 Punkte)
Vielen dank ich glaube ich schliese das jetz mal es gibt ja noch den patscher.
0 Punkte
Beantwortet von ralfb Experte (6.9k Punkte)
kleine Ergänzung zu AW 14

Die Abschnitte für die Sprungziele müssen mit Doppelpunkt beginnen ...und Sprünge zum Ende oder wieder nach oben ins Menü können auch Sinn machen

Bsp.:

ECHO.
ECHO.
:menu
cls
ECHO Willkommen zum Demostartmenü
Echo.
ECHO A Aktion 1
ECHO B Aktion 2
ECHO E Beenden
ECHO.
ECHO.
CHOICE /c:EBA Wähle eine Option...

IF ERRORLEVEL 3 GOTO aktion1
IF ERRORLEVEL 2 GOTO aktion2
IF ERRORLEVEL 1 GOTO end

:aktion1
[weitere Befehle]
goto menu

:aktion2
[weitere Befehle]
goto menu

:end
echo ...und Tschüss!



automatische Auswahl nach festgelegten Sekunden wenn nicht gewählt wird gibt es auch

CHOICE /c:EBA /t:E,10 Wähle eine Option ...oder automatisches Beenden nach 10 Sekunden!


...hier wird nach 10 Sekunden zum Ende gesprungen


Grüsse Ralf
;))
...