====== Batchen im AES-Look ====== AES steht für "Application Environment Services". Dabei handelt es sich um den Teil des Betriebssystems, der für die Menüsteuerung und Zeilen-Editor-Funktionen von Portfolios internen Applikationen verantwortlich ist.\\ Dies geht zwar schon allein mit den internen DOS-Befehlen, sieht dann aber nur so lala aus. Mit Hilfe von ein Paar Utilities und Tools allerdings kann man komplexe "Programme" schreiben. Diese Utilities/Tools sind alle kostenlos erhältlich: * [[software:vorstellung:utilities:μxt#CSRPOS.COM|CSRPOS.COM]] -- Ermöglicht das freie Positionieren des Textcursors. * [[software:vorstellung:utilities:μxt#CSRMOD.COM|CSRMOD.COM]] -- Ermöglicht das Ein- und Ausschalten des Textcursors. * [[software:vorstellung:utilities:μxt#SCRSTR.COM|SCRSTR.COM]] -- Speichert komplette Textbildschirme als Datei. * [[software:vorstellung:utilities:μxt#SCRRST.COM|SCRRST.COM]] -- Liest den mit SCRSTR.COM gespeicherten Bildschirm zurück. * [[software:vorstellung:utilities:μxt#BOX.COM|BOX.COM]] -- Erstellt einen AES-üblichen Rahmen. * [[software:vorstellung:utilities:μxt#MSG.COM|MSG.COM ]] -- Zeigt eine eingerahmte Meldung. * [[software:diy:pascal:pascalbjg#MENU.EXE|MENU.EXE]] -- Erzeugt eine Auswahlbox. * [[software:vorstellung:utilities:μxt#INPUT.COM|INPUT.COM]] -- Ermöglicht die Eingabe von Zeichen samt Zeilen-Editing. *GETFILE.EXE -- Ermöglicht das Laden/Ausführen von Dateien in einer Auswahlbox. Diese Dateien sind im [[software:download|Downloadbereich]] erhältlich. Downloaden, zum Pofo übertragen, und los geht's ... ===== Erste Versuche ===== Wir schreiben uns folgende Batchdatei: BOX CSRPOS 1,5 ECHO AES-Batchen CSRPOS 2,3 ECHO Mit dieser Batchdatei und ein paar CSRPOS 3,3 ECHO Utilities kann ich mir meine eigene CSRPOS 4,3 ECHO AES-Umgebung zurecht-batchen. SCRSTR.COM SCR0.PGT Nennen wir sie MKAES01.BAT. Wenn wir sie ausführen, sehen wir dabei zu, wie DOS uns einen Startbildschirm "bastelt" und ihn zum Schluss in der Datei mit dem Namen SCR0.PGT ablegt. Nun ein kleines Hauptprogramm: :START SCRRST SCR0.PGT SET FILENAME=UNSET GETFILE *.* IF %FILENAME%==UNSET GOTO ENDE CLS ECHO %FILENAME% PAUSE >NUL SET FILENAME== CLS SCRRST SCR0.PGT GOTO START :ENDE Nennen wir es AES.BAT. Starten wir diese Batchdatei, erscheint unser vorher generierter Startbildschirm und ein Fenster mit allen auf dem gegenwärtigen Pfad befindlichen Dateien. Mit den Pfeiltasten oder durch Drücken eines der Anfangsbuchstaben wählen wir sie aus. Dies erledigt GETFILE.EXE. Haben wir eine Datei ausgewählt, steht ihr Name in der Umgebungsvariable FILENAME. Nun können wir mit dieser Datei alles mögliche anstellen:\\ Sie löschen: DEL %FILENAME% \\ Sie ansehen: TYPE %FILENAME% \\ Sie kopieren: COPY %FILENAME% C:\*.* \\ usw. \\ Im obigen Beispiel wird der Name auf einem leeren Bildschirm dargestellt (''ECHO %FILENAME%''). Drücken wir eine Taste, kehren wir zum Startbildschirm zurück. Um das Programm zu verlassen, drücken Sie Esc, während Sie das Dateiauswahlmenü sehen. ===== Ladebalken ===== Na ja, dies ist nicht AES-typisch, eher Windows, aber manchmal ganz nett. scrstr SCREEN0.PGT csrmod /o csrpos 4,10 box 3,20 csrpos 4,14 echo loading... csrpos 5,11 echo █ csrpos 5,12 echo ██ csrpos 5,14 echo ██ csrpos 5,16 echo ██ csrpos 5,18 echo ███ csrpos 5,21 echo █ csrpos 5,22 echo █ csrpos 5,23 echo █ csrpos 5,24 echo ██ csrpos 5,26 echo ██║ pause >nul scrrst SCREEN0.PGT csrmod /b Zwischen ECHO und CSRPOS können jeweils Teile einer Routine eingefügt werden. So kann man anhand des wachsenden Balkens das Fortschreiten der Gesamtroutine beobachten. ===== Elementarer Filemanager ===== Eine etwas komlexere Batch-Datei die so etwas ähnliches wie ein Filemanager ist. Das Programm prüft am Anfang ob alle erforderlichen Utilities und Tools zur Verfügung stehen. Es wird eine gewisse Verzeichnis-Struktur vorausgesetzt (A:\COMMANDS\, A:\TOOLS\, A:\UTILITY\...), sollten Sie die Programme MENU, INPUT, GETFILE, BOX... in anderen Verzeichnissen haben passen sie dies vorher an. Es wird zusätzlich zu den oben erwähnten Utilities noch die Utility [[software:vorstellung:utilities:μxt|ALF.COM]] benötigt.\\ @echo off echo checking environment integrity... if not exist a:\tools\scrrst.com goto noaes if not exist a:\tools\scrstr.com goto noaes if not exist a:\utility\aes.pgt goto noaes if not exist a:\commands\csrpos.com goto noaes if not exist a:\commands\box.com goto noaes scrrst a:\utility\aes.pgt csrpos 7,39 pause >nul csrmod /o csrpos 4,10 box 3,20 csrpos 4,14 echo loading... csrpos 5,11 echo █ if not exist a:\commands\msg.com goto noaes2 csrpos 5,12 echo ██ if not exist a:\tools\menu.exe goto noaes2 if not exist a:\tools\getfile.exe goto noaes2 csrpos 5,14 echo ██ if not exist a:\commands\alf.com goto noaes2 csrpos 5,16 echo ██ csrpos 5,18 echo ███ csrpos 5,21 echo █ csrpos 5,22 echo █ csrpos 5,23 echo █ csrpos 5,24 echo ██ csrpos 5,26 echo ██║ csrpos 7,1 scrrst a:\utility\aes.pgt csrpos 4,4 box 3,33 csrpos 5,6 echo welcome to batch-environment! csrmod /b csrpos 5,35 chkdsk >nul csrmod /o scrrst a:\utility\aes.pgt goto main :noaes2 scrstr c:\aeserr.pgt csrpos 3,5 box 3,34 csrpos 4,7 echo sorry, environment incomplete. chkdsk >nul scrrst a:\utility\aes_req.pgt pause >nul scrrst c:\aeserr.pgt del c:\aeserr.pgt goto quit :main csrpos 2,17 csrmod /b menu main apps commands tools dos quit if errorlevel 5 goto quit if errorlevel 4 goto dos if errorlevel 3 goto tools if errorlevel 2 goto commands if errorlevel 1 goto apps goto quit :apps a: scrstr c:\aes01.pgt :appmenu menu apps adr dry wks txt cal if errorlevel 5 goto cal if errorlevel 4 goto txt if errorlevel 3 goto wks if errorlevel 2 goto dry if errorlevel 1 goto adr scrrst c:\aes01.pgt del c:\aes01.pgt goto main :adr scrstr c:\aes02.pgt set spec=a:\apps\*.adr set appl=/a goto getapp :dry scrstr c:\aes02.pgt set spec=a:\apps\*.dry set appl=/d goto getapp :wks scrstr c:\aes02.pgt set spec=a:\apps\*.wks set appl=/w goto getapp :txt scrstr c:\aes02.pgt set spec=a:\apps\*.txt set appl=/e goto getapp :cal scrstr c:\aes02.pgt app /c scrrst c:\aes02.pgt del c:\aes02.pgt goto appmenu :quit csrmod /o scrrst a:\utility\aes.pgt csrpos 4,10 box 3,18 csrpos 5,12 echo leaving AES... csrpos 5,26 csrmod /b goto end :getapp if not exist %spec% goto nofil if not exist c:\system\permdata.dat goto nopd set filename=unset getfile %spec% if %filename%==unset goto appret set cmd=alf a:\apps\%filename% %appl% %cmd% app %appl% set spec= set filename= set appl= set cmd= scrrst c:\aes02.pgt del c:\aes02.pgt >nul goto appmenu :appret scrrst c:\aes02.pgt del c:\aes02.pgt >nul set spec= set filename= set appl= set cmd= goto appmenu :nofil msg no matching file found. goto appret :nopd copy a:\utility\permdata.dat c:\system\*.* >nul goto getapp :commands scrstr c:\aes01.pgt :commenu set filename=unset set spec=a:\commands\*.* if not exist %spec% goto nocom getfile %spec% if %filename%==unset goto comret scrstr c:\aes02.pgt cls %filename% pause scrrst c:\aes02.pgt del c:\aes02.pgt set filename= set spec= goto commenu :comret scrrst c:\aes01.pgt del c:\aes01.pgt goto main :nocom msg no matching file found. set filename= set spec= scrrst c:\aes01.pgt del c:\aes01.pgt goto main :tools scrstr c:\aes01.pgt :toolmenu set filename=unset set spec=a:\tools\*.* if not exist %spec% goto noexe getfile %spec% if %filename%==unset goto exeret scrstr c:\aes02.pgt if not %filename%==TCCALC.COM cls %filename% csrpos 8,3 pause scrrst c:\aes02.pgt del c:\aes02.pgt set filename= set spec= goto toolmenu :exeret scrrst c:\aes01.pgt del c:\aes01.pgt goto main :noexe msg no matching file found. set filename= set spec= scrrst c:\aes01.pgt del c:\aes01.pgt goto main :dos scrstr c:\aes01.pgt :dosmenu menu DOS dir chkdsk time label if errorlevel 4 goto doslab if errorlevel 3 goto dostim if errorlevel 2 goto doschkdsk if errorlevel 1 goto dosdir scrrst c:\aes01.pgt del c:\aes01.pgt goto main :dosdir scrstr c:\aes02.pgt cls dir /p pause scrrst c:\aes02.pgt del c:\aes02.pgt goto dosmenu :doschkdsk scrstr c:\aes02.pgt cls chkdsk /p csrpos 8,1 pause scrrst c:\aes02.pgt del c:\aes02.pgt goto dosmenu :dostim scrstr c:\aes02.pgt cls csrpos 3,1 time date pause scrrst c:\aes02.pgt del c:\aes02.pgt goto dosmenu :doslab scrstr c:\aes02.pgt cls csrpos 3,1 label pause scrrst c:\aes02.pgt del c:\aes02.pgt goto dosmenu :noaes echo sorry, environment incomplete. goto exit :end set filename= set spec= del c:\aes??.pgt >nul scrrst a:\utility\aes.pgt csrmod /b :exit Download: {{:software:diy:batch:aes.zip|AES.BAT}} [[v-hamann@web.de|volker hamann]]