Was kann der DOSKEY-Befehl?

Konfiguration, Anwendungen, Treiber und TSRs unter DOS
Antworten
Benutzeravatar
Dadys_Toy
Norton Commander
Beiträge: 143
Registriert: Di 21. Apr 2009, 20:54
Wohnort: /DE/SN/TDO

Was kann der DOSKEY-Befehl?

Beitrag von Dadys_Toy »

Da ich wieder mal am basteln bin hab ich mich auch mit dem DOSKEY Befehl auseinandergesetzt. Dadurch hab ich wieder was gelernt und möchte Euch mal dran teilhaben lassen.
In einigen Treads im Netz ließt man über DOSKEY das es "Schrott" oder "hab ich gleich gelöscht" oder "ist ganz prima". Was kann man damit nur anfangen?

Also: DOSKEY ist ein Programm unter MS-DOS (5.0-6.22) welches in erster Linie die Eigaben auf der Tastatur speichert die man dann ganz einfach wieder abrufen kann. Schon der Aufruf in der autoexec.bat mittels: C:\DOS\DOSKEY sorgt dafür das mit den Pfeiltasten ↑ und ↓ der nächste und der vorherig eingetippte Befehl komplett an der Eingabeaufforderung erscheint. Vor Allem bei längeren Befehlen kann man so sich viel Tipparbeit sparen. Aber DOSKEY kann noch mehr!
Ich habe zum Bsp. in der Autoexec.bat folgendes stehen:

Code: Alles auswählen

LH C:\DOS\DOSKEY FORMAT=ECHO Das geht nicht! FORMAT
C:\DOS\DOSKEY DEL=ECHO Das geht nicht! DEL
C:\DOS\DOSKEY DELTREE=ECHO Das geht nicht! DELTREE
Damit habe ich einen einfachen Löschschutz für meine Festplatte konfiguriert. Sobald ein Programm, einfacher Virus oder die Kinder mal einen der 3 Befehle eingeben erscheint die Meldung: "ECHO Das geht nicht! FORMAT" auf dem Bildschirm. Dadurch ist ein versehntliches Löschen oder Formatieren nicht mehr möglich. Keine Angst, Dateien kann man dennoch löschen. Enfach ein Leerzeichen vor den Befehl eintippen und der DOSKEY-Befehl wird ignoriert. Dadurch das ich DOSKEY erstmalig mit "LH" aufrufe wird das Programm in den oberen Speicher gelegt und man spart etwa 4KB RAM.

Aber DOSKEY kann noch viel mehr! Sicher kennt ihr es auch das man zum Aufrufen der ausführlichen Speicherbelegung oder dem Status von Smartdrive, kopieren/sichern von Dateien auf einer Disk/HD, entpacken von arj auf die HD, ... also praktisch immer wiederkehrende Befehle mühsam eintippen muß um danach festzustellen das man ein Zeichen vergessen hat oder man sich vertippt hat. Auch dafür kann man DOSKEY prima nutzen. Viele schreiben eine Batchdatei in der dieser Befehl ausführlich drin steht und rufen diese dann mit ihrem Namen auf. Man sollte allerdings wissen das jede Batchdatei mindestens eine Zuordnungseinheit auf der HD belegt. Speicher ist heute zwar kein Thema mehr aber wer möglichst Orginalhardware einsetzt hat auch heute noch max. eine 540MB Platte im 486er. Durch FAT16 können dann 50 Batchdateien locker 100kB belegen obwohl diese eingentlich nur auf 5000 Zeichen (5kB) kommen. Glatte Platzverschwendung! Desweiteren benötigt jede Batchdatei einen Aufruf und etwas Rechenzeit beim Starten.
Besser ist es man benutzt sogenannte "DOSKEY-Makros". Damit kann man festlegen das zum Bsp. bei der Eingabe von "mem" gleich die ausführliche Speicherbelegung angezeigt wird: "C:\DOS\DOSKEY MEM=MEM /C /P" oder wie wärs mit dem Sichern wichtiger Dateien in einem speziellen Verzeichnis: "C:\DOS\DOSKEY TS=XCOPY C:\WINWORD\TEXTE\*.DOC D:\SAVE\WINWORD". Durch den Aufruf von "TS" an der Eingabeaufforderung werden so, komplett automatisch, alle Texte von Word in des Sicherungsverzeichnis der 2. Partition kopiert. Eine bestmmte Datei sucht man am Besten mit: "C:\DOS\DOSKEY FINDE=DIR \$1 /s" Man gibt nur "finde win.ini" ein und schon erscheint das Ziel. Auch hier gilt: für den Orginalbefehl einfach ein Leerzeichen vor den Befehl setzen.

DOSKEY kann etwa 25 Befehle speichern. Wer mehr braucht sollte "C:\DOS\DOSKEY /BUFFSIZE=2000" für cirka 100 Befehle eintippen. Um alle Makros anzuzeigen tippt man am Prompt auf F7 und sortiert erscheinen sie mit: "DOSKEY LM=DOSKEY /MACROS $B SORT $B MORE"

Man kann sich also prima mit DOSKEY die tägliche DOS-Arbeit erleichtern. Allerdings sei angeraten nicht 1000 DOSKEY-Makros in die autoexec.bat einzutragen sondern dafür lieber eine Batchdatei (z.Bsp: Makros.bat) schreiben welche in der autoexec.bat aufgerufen wird.
Wer noch viele weitere interessante Makros sucht kann ein bischen selbst testen, im Netz suchen oder schaut in das Buch: "Die Trickkiste zu DOS 6.0" aus dem dtv-Verlag von 1993 (ISBN 3-423-52008-6)

So, das wars von mir. Nun seit Ihr dran: Welche Makros nutzt Ihr? Welche DOSKEY-Befehle sind Euch bekannt?

mfg :)
Minimig -Winners dont use AGA!-
SNI PCD-4H ; i486 DX2/66, 16MB RAM, 540MB-CF, Mitsumi FX400, VLB, SB16-MCD, Orchid WaveBooster 4, DOS6.2/Win3.11
Home: http://www.a1k.org/forum/
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3218
Registriert: Mi 24. Mai 2006, 20:29

Beitrag von Dosenware »

Doskey18 ist 720byte kleiner und kann mehr (Tab ist aeußerst nuetzlich - ein Buchstabe ein Tab und schon steht der Passende Dateiname/Befehl da)... kann ich bei bedarf Hochladen, auf http://freesoft.freedos.pri.ee/FreeSoft/keyb.htm ists leider nicht mehr verfuegbar...

btw. die Ansi.sys (bei mir DVANSI.COM 2304 bytes kleiner) ist auch ganz nett

teste mal "PROMPT=$e[0;134;"MODE CON: COLS=80 LINES=50";13p" F12 stellt dann 50 Zeilen ein.... (kannst danach den Prompt nach belieben aendern)

ohne 13 (==ENTER) kannst du mit einem Tastendruck deine Befehlszeile hinschreiben lassen und halt noch ein paar Parameter (Verzeichnisse...) anpassen... - tastaturcodes stehen in der help.com

PS. zum Batchproblem: einfach eine Großbatch machen gibt dann folgende Syntax:

Großbatch Befehl [Parameter]

in der Großbatch steht dann halt an erster Stelle goto %1 (%1 ist der erste Parameter==Befehl)
Benutzeravatar
Dadys_Toy
Norton Commander
Beiträge: 143
Registriert: Di 21. Apr 2009, 20:54
Wohnort: /DE/SN/TDO

Beitrag von Dadys_Toy »

Gute Idee. Meine Ausführungen habe ich bewußt auf MS-DOS 6.x bezogen da ja fast jeder "Retro" genau dieses besitzt und viele die ihr Wissen über die alte Zeit wieder auffrischen wollen hier nachsehen.
Über FreeDOS und andere Deriverate könnt ihr aber hier auch gern berichten.

mfg :)
Minimig -Winners dont use AGA!-
SNI PCD-4H ; i486 DX2/66, 16MB RAM, 540MB-CF, Mitsumi FX400, VLB, SB16-MCD, Orchid WaveBooster 4, DOS6.2/Win3.11
Home: http://www.a1k.org/forum/
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3218
Registriert: Mi 24. Mai 2006, 20:29

Beitrag von Dosenware »

das Zeug laeuft bei mir auf normalem Dos ;-) - außerdem ist der Kram kompatibel... nur halt kleiner (bin halt Bytezaehler)

uerbrigens: die Beiden stammen nicht von Freedos ;-) (DVAnsi ist fuer Desqview von 92 - Doskey1.8 ist von 2003 - stammt allerdings auch nicht von FreeDOS - zumindest schauts so aus (Freedos hat eine Art Doskey bereits in der Command integriert))
Antworten