Aktuelles Laufwerk in DOS feststellen

Viele per »PATH«-Befehl von (fast) überall direkt zugängliche Stapeljobs, die eine beliebige Anwendung aufrufen, landen häufig mit der Fehlermeldung »Ungültiges Verzeichnis!« in einer Endlosschleife, weil Sie sich zur Zeit des Aufrufs gerade auf einem anderen Laufwerk befinden. Abhilfe schafft es zwar, zu Beginn der Stapeldatei das aktuelle Laufwerk zu ändern, aber nicht immer ist dies auch erwünscht. GETDRIVE.DEB übergibt daher den Code des aktuellen Laufwerks im Errorlevel. Von ihm können Sie die weitere Ausführung aller Batch-Dateien abhängig machen. Dadurch können Sie Stapeldateien schreiben, die nur von einem bestimmten Laufwerk aus gestartet werden können. Die folgende Stapeldatei GETDEMO.BAT demonstriert Ihnen die Anwendung. Wird GETDEMO.BAT von einem anderen als dem Laufwerk C: aus aufgerufen, gibt sie eine kurze Meldung auf den Bildschirm aus.

@ECHO OFF
GETDISK
IF ERRORLEVEL 3 GOTO FEHLER
IF NOT ERRORLEVEL 2 GOTO FEHLER
ECHO Hier kann eine beliebige Anwendung folgen ...
GOTO ENDE
:FEHLER
ECHO Vor dem Aufruf der Anwendung mit "C:"
ECHO auf das Laufwerk C: überwechseln!
:ENDE

Den gleichen Effekt wie mit GETDRIVE.DEB können Sie übrigens auch erreichen, indem Sie PCOMP.DEB verwenden. Nach der Zeile »CD | PCOMP C:« gibt der Errorlevel Aufschluß darüber, ob C: als aktuelles Laufwerk gesetzt ist.

Name: GETDRIVE.DEB
Funktion: Ermittelt den Code des aktuellen Laufwerks.
Übersetzung: DEBUG <GETDRIVE.DEB
Prüfsumme: 0FC0
Anwendung: GETDRIVEIF ERRORLEVEL #

# = 0 (A), 1 (B), 2 (C) usw.

Einschränkungen: ./.
A
MOV AH,19           ;100
INT 21              ;102
MOV AH,4C           ;104
INT 21              ;106

RCX
8
NGETDRIVE.COM
W
Q

Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot