68574

Windows: Lösch-Befehl versagt unbemerkt

10.10.2005 | 14:38 Uhr |

Das Kommando DEL in der Eingabeaufforderung von Windows verschweigt Fehler beim Löschen.

Die Kommandozeile führt unter Windows ein Schattendasein. Wer sie zu nutzen weiß, schätzt die sich bietenden Möglichkeiten, wird sich jedoch über Macken wie die Folgende wundern. Der seit der Anfangszeit von MS-DOS vorhandene Löschbefehl "del" (delete) enthält einen Fehler, der erst in neueren Windows-Versionen eingebaut wurde.

In der Eingabeaufforderung von Windows (gerne als "DOS-Box" abgekürzt) können Sie dem Befehl DEL mehrere Dateinamen als Parameter übergeben. Diese Dateien werden, sofern vorhanden, gelöscht - in der Regel ohne Kommentar. Beim Löschen einer einzelnen Datei erscheint jedoch eine Fehlermeldung, falls die angegebene Datei nicht vorhanden ist. Das ist äußerst sinnvoll, denn schnell hat man sich mal vertippt.

Übergibt man dem Löschbefahl hingegen mehrere Dateinamen, unterbleibt jegliche Fehlermeldung, sofern wenigstens eine der angegebenen Dateien vorhanden ist und gelöscht werden konnte.

Demonstration :

rem deldemo.cmd - in Eingabeaufforderung aufrufen
cd \
md deltest
cd deltest
dir >dir0.txt
dir >dir1.txt
dir >dir2.txt
dir
del dir0.txt dir.txt dir2.txt
del dir.txt
dir

Der Befehl DIR gibt das aktuelle Inhaltsverzeichnis aus. Er wird in dem Beispiel benutzt, um mehrere Dateien anzulegen. Dazu wird seine Bildschirmausgabe mehrmals in eine Datei umgeleitet. Nehmen wir nun an, Sie möchten die Dateien dir0.txt, dir1.txt und dir2.txt löschen. Sie benutzen dazu den DEL-Befehl und übergeben ihm die drei Dateinamen, vertippen sich aber bei der zweiten Datei.

Die erste und dritte Datei werden gelöscht, die zweite Datei nicht. Es erscheint jedoch auch keine Fehlermeldung. Geben Sie hingegen nur den falschen Dateinamen an, meldet DEL korrekt, dass die Datei nicht gefunden wurde. Das gleiche Problem tritt auf, wenn die zweite Datei korrekt angegeben wird, aber als versteckt gekennzeichnet ist. Wer nun meint, das etwas neuere Kommando ERASE sei von diesen Problemen nicht betroffen, irrt.

Der Fehler ist von Microsoft offenbar mit Windows 2000 eingeführt worden. Unter Windows NT 4.0 verhalten sich DEL und ERASE wie erwartet, sie melden also die nicht gefundene Datei. Unter Windows 2000 und XP hingegen treten die besagten Fehler auf.

Wenn Sie also, eventuell auch aus Sicherheitsgründen oder zum Schutz der Privatsphäre, mit DOS-artigen Batch-Dateien arbeiten, um regelmäßig automatisch bestimmte Dateien zu löschen, beachten Sie diese Fehler. Löschen Sie Dateien vorzugsweise mit Platzhaltern (* und ?), etwa "del *.txt" oder "del dir?.txt".

0 Kommentare zu diesem Artikel
68574