Programmieren - alles kontrollieren 4.936 Themen, 20.625 Beiträge

Dos Tastenbelegung

Andrea Siegert / 10 Antworten / Flachansicht Nickles

Hallöchen!

Ich habe hier eine kniffelige Aufgabe zu beanworten, aber schaffe es nicht allein. Wer kann mir dabei helfen?
Und los gehts:

Batch-Datei erstellen,mit wahlweise 2 verschiedennen Tastenbelegungen, auswahl durch Eingabe einer Option. Durch Eingabe der Option \\3 sollen alle Belegungen gelöscht werden und das Systemprompt restauriert.

Das ist die Aufgabe und nun mein verzweifelter Ansatz.

@ echo off
rem *** Als erstes muß das Prompt als Systemprompt gespeichert werden.

set prompt=systemprompt

rem *** Nun kann man beginnen die 2 Tastenbelegungen zu schaffen. damit diese funktionieren muß der Treiber Ansi.sys geladen sein, man kann ihn einfach in die Cpnfig.sys installieren. Bei der ersten Belegung soll der Befehl dir ausgeführt werden, durch die Eingabe von ALT+D.

prompt $e[0;32;"dir";13p

rem *** Diese Belegung speichere ich jetzt und entferne das prompt wieder um um die zweite Belegung zu schaffen und ebenfalls wieder entfernen.

set prompt=prompt1
prompt $e[0;32p

rem *** Bei der zweiten Belegung soll durch Eingabe von ALT+W das Verzeichnis \\Word geöffnet werden und das Programm Word ausgeführt werden.

prompt $e[0;17;"cd\\word";13;"word"13p
set prompt=prompt2
prompt $e[0;17p

rem *** Ich habe jetzt das Systemprompt gespeichert um es nachher mit der Option \\3 wieder restaurieren zu können und 2 Tastenbelegungen geschaffen,gespeichert. Nun kommt auch schon mein Problem, wie bekomme ich durch Eingabe einer Option die Belegungen gewächselt und wie durch die Option \\3 gelöscht um den Urzustand(Systemprompt) herzustellen?

bei Antwort benachrichtigen
Borlander Andrea Siegert „Dos Tastenbelegung“
Optionen

Hallo Andrea!

kann es leider nicht testen?
Wieso kannst Du es nicht testen

@echo off
set Systempromrt=%prompt%

Hier ergibt sich das Problem dass Prompt nicht mehr wiederherstellen lässt, wenn Das Script 2x aufgerufen wurde. Also besser noch eine

entsprechende Abfrage rein:
IF %SYSTEMPROMPT%=="" THEN SET SYSTEMPROMPT=%prompt%


prompt $e[o;32;"dir";13p
set prompt1=%prompt%
prompt $e[0;32p

prompt $e[0;17;"cd\word";13;"word";13p
set prompt2=%prompt%
prompt $e[0;17p

Beide Blöcke werden nur gebraucht wenn die Entsprechende Option ausgewählt wird, also in den Entsprechenden Abschnitt rein (prompt1/2).
Der String den Du als PROMT Übergibst kann ich nicht nachvollziehen, aber wenn ich das richtig verstanden habe willst Du Tastenkombinationen für Befehle vergeben. Das ist AFAIK nicht übers Prompt möglich, sondern mit DOSKEY-Makros.

:prompt1
set prompt=%prompt1%
shift
goto ende

:prompt2
set prompt=%prompt2%
shift
goto ende

:Systemprompt
set prompt=%Systemprompt%
shift
goto ende

:ende
echo Das war`s!

Wofür bruchst Du den SHIFT-Befehl Du hast doch nur einen Parameter?

Habe noch was vergessen wenn die option/3 eingegeben worden ist sollen ja die anderen belegungen gelöscht werden wie mache ich das am besten?
Sollte das Script doch so schon machen, indem das Prompt wieder hergestellt wird.


Ich habe das ganze nicht getestet und kann auch nicht garantieren, dass das Script syntaktisch korrekt ist, das musst Du schon selbst machen.


CU Borlander

bei Antwort benachrichtigen
@Borlander Dr. Hook