Parameter in DOS auswerten 1

Auf der DOS-Ebene gibt es außer über »IF ERRORLEVEL …« bisher keine Möglichkeit, Ergebnisse, gleich welcher Art, auszuwerten und in Stapeljobs – beispielsweise aufgrund bestimmter Bildschirmausgaben – konkrete Entscheidungen zu treffen. Viele Programme liefern darüberhinaus überhaupt keinen Errorlevel, sodaß Ihnen außer der visuellen Kontrolle nicht die geringste Entscheidungsmöglichkeit zur Verfügung steht. Mit den folgenden vier Filtern sind Sie absofort nicht mehr darauf angewiesen, daß ein beliebiges Programm je nach Ergebnis der Ausführung auch wirklich einen entsprechenden Errorlevel setzt. In der Wirkung sind alle Programme genau wie im Abschnitt »Textausgaben manipulieren« gleich – der Unterschied liegt wieder im Detail.

INSTR.DEB überprüft, ob jedes Zeichen der ersten Zeile einer Textausgabe im Parameter vorkommt und teilt das Ergebnis im Errorlevel mit. Die Eingabe »ECHO 12345 | INSTR 12« liefert z. B. den Errorlevel 255, weil mindestens ein Zeichen, nämlich 3, 4 oder 5, nicht im zur Auswahl stehenden »Zeichensatz« vorkommt. Wären diese auch im Parameter aufgeführt, würde INSTR den Errorlevel auf 0 setzen. Die folgende Stapeldatei demonstriert eine Anwendung von INSTR, indem sie überprüft, ob als Parameter eine Ganzzahl angegeben wurde. Eine Abfrage dieser Art ist z.B. bei einer Stapeldatei zum automatischen Einrichten einer RAM-Disk sinnvoll, weil ein ungültiger Parameter sich dort ja erst nach dem nächsten Systemstart zeigen würde.

@ECHO OFF
IF "%1"=="" GOTO FEHLER
ECHO %1|INSTR 1234567890
IF ERRORLEVEL 255 GOTO FEHLER
ECHO %1 ist eine Zahl.
REM Hier kann z.B. eine Anwendung stehen...
GOTO ENDE
:FEHLER
ECHO Bitte eine Ganzzahl als Parameter angeben!
:ENDE
200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot

PS: Sie haben einen Linkedin-Account? Dann können Sie meinen Newsletter „The Bright Side of the Doom“ abonnieren ✔︎ 

Matomo