Flexible Bildschirmfunktionen für DOS Da der Bildschirm neben der Tastatur die wohl wichtigste Schnittstelle zwischen Computer und Mensch bedeutet, ist des Programmierers häufig am ehesten vernachlässigte Pflicht, Bildschirmausgaben geschmackvoll aufzubereiten.
EXE2BIN ohne EXE2BIN ausführen Zum Lieferumfang von PC-DOS 3.3 gehört nicht mehr wie in Vorgängerversionen das Utility EXE2BIN.EXE zur Umwandlung von EXE- in COM- oder BIN-Programme. Entweder erwerben Sie es für viel Geld gesondert mit dem »Technischen Handbuch«, oder Sie verwenden einen der Patches im gleichnamigen Kapitel unseres Buches. EXE2BIN.BAT ist eine weitere Alternative, bei der Sie überhaupt kein gesondertes …
Aktuelle DOS-Version ermitteln Zwar können Sie sich mit dem DOS-Befehl VER die vom PC verwendete Betriebssystem-Version ausgeben lassen, doch ist es häufig besser, die Ausführung mancher Programme unter bestimmten DOS-Versionen verbieten zu können. ISVER.DEB überprüft die DOS-Versionsnummer und liefert das Ergebnis im Errorlevel. Stimmt die Version nicht mit dem übergebenen Parameter überein, ist der Errorlevel 0. 1 bedeutet, …
Leeres Verzeichnis in DOS ermitteln Oft ist es wichtig, festzustellen zu können, ob ein bestimmtes Verzeichnis leer ist. Löschanweisungen, die versteckte Dateien »vergessen« und anschließend ein »RD Verzeichnis« ausführen sollen, könnten z. B. vor dem unvermeidlichen Fehler »Ungültiger Suchweg, kein Verzeichnis oder Verzeichnis nicht leer!« alternative Aktionen durchführen. Kopieranweisungen können rechtzeitig vor noch gefüllten Directories warnen, damit eventuell gleichnamige Programme nicht überschrieben werden und so weiter. …
Ist das Verzeichnis vorhanden? Analog zu »IF EXIST Datei« gibt es bisher keine Möglichkeit, festzustellen, ob ein bestimmtes Verzeichnis existiert. Kopier-Anweisungen in Stapeljobs landen z. B. oftmals in falschen Verzeichnissen und überschreiben gleichnamige Dateien, weil der Anwender sich nicht haargenau so verhalten hat, wie es die Batch-Datei vorschreibt. ISDIR.DEB hilft, solche Fehler zu vermeiden. Das Programm speichert das aktuelle Verzeichnis des …
Ist ein Coprozessor installiert? Manche Anwendungen funktionieren nur mit einem zusätzlich installierten mathematischen Coprozessor. COPROC.DEB ermittelt aus dem »Equipment«-Flag des Interrupt 11h, ob ein Coprozessor installiert ist und übergibt das Ergebnis dem ERRORLEVEL. Sie können dann entscheiden, ob das rechenintensive Programm ausgeführt werden soll oder nicht. Name: COPROC.DEB Funktion: Überprüft den PC auf einen vorhandenen Coprozessor. Übersetzung: DEBUG <COPROC.DEB Prüfsumme: …
Systemvariablen in DOS editieren Als krönender Abschluß unserer »Flexiblen Eingabehilfen« hier nun eine Möglichkeit, sämtliche Systemvariablen editieren zu können. Der Stapeljob benötigt neben SAY.DEB zusätzlich noch EMIT.DEB aus dem Kapitel »Andere Befehle«. Name: VAREDIT.BAT Funktion: Eine Möglichkeit, sämtliche Systemvariablen zu editieren. Übersetzung: ./. Prüfsumme: ./. Anwendung: VAREDIT Variable Einschränkungen: Benötigt SAY- und EMIT.DEB. @ECHO OFF IF „%1″==““ GOTO ENDE SAY %1= SAY SET %1=>TMP2.BAT …
Input erwartet Zeichenkette Alle Programme, die wir Ihnen bisher vorgestellt haben, besitzen einen großen Nachteil: Sie ermöglichen es nur, auf einzelne Tastendrücke zu reagieren. In vielen Fällen wäre es aber nützlich, ganze Zeichenketten , wie z. B. Verzeichnisnamen, eingeben zu können. Wir zeigen Ihnen, wie Sie das recht komfortabel bewerkstelligen können. Mit INPUT.DEB können Sie die Eingabe einer …
Inkey liefert den Errorlevel 0 INKEY.DEB wartet genau wie ASK, bis eine Taste gedrückt wird, liefert jedoch den Errorlevel 0, falls das eingebene Zeichen nicht im Parameter vorkommt. Das Programm kehrt also nach der ersten gedrückten Taste auf die Systemebene zurück, während dies bei ASK erst bei erfolgreichem Vergleich mit den Zeichen im Parameter geschieht. Das eingegebene Zeichen erscheint genau …
Auf eine Funktionstaste warten GET.DEB wartet genau wie ASK auf die Eingabe eines bestimmten Zeichens, erlaubt jedoch auch die Verwendung von Funktionstasten. Die Syntax entspricht genau der von KEYIN.DEB – die Wirkung ist mit der von ASK identisch. So lassen sich mit GET z. B. die Funktions- oder Cursortasten und auch beliebige Kombinationen mit <Strg> sowie andere erweiterte Tasten …