Kommandozeilen-Chaos

Seit Windows 95 müssen Dateinamen nicht mehr dem alten 8+3-Schema folgen. Auch Endungen mit mehr als drei Buchstaben sind seitdem möglich. Allerdings kümmert sich Windows nicht immer um die zusätzlichen Buchstaben der Extensionen: Wenn Sie auf der Befehlszeile (Command.COM oder Cmd.EXE) den Befehl "del *.dat" eingeben, löschen Sie damit im aktuellen Verzeichnis beispielsweise auch alle Dateien mit der Endung ".DATA". Wir erklären Ihnen, wieso dieses Verhalten kein Bug ist.
Anforderung:
Fortgeschrittener
Zeitaufwand:
Mittel
Problem:

Seit Windows 95 müssen Dateinamen nicht mehr dem alten 8+3-Schema folgen. Auch Endungen mit mehr als drei Buchstaben sind seitdem möglich. Allerdings kümmert sich Windows nicht immer um die zusätzlichen Buchstaben der Extensionen: Wenn Sie auf der Befehlszeile (Command.COM oder Cmd.EXE) den Befehl "del *.dat" eingeben, löschen Sie damit im aktuellen Verzeichnis beispielsweise auch alle Dateien mit der Endung ".DATA".

Lösung:

Es handelt sich wohl um keinen Bug. Windows ist auf der Kommandozeile abwärtskompatibel zu früheren, DOS-basierten Systemen. Während die Kommandozeile mit langen Namen umgehen kann, ignoriert sie das bei den Erweiterungen. Das ist auch noch bei Cmd.EXE unter Windows 2000 und XP der Fall. Hier ist das Verhalten problematischer, weil der DEL-Befehl mit dem Schalter /s ganze Festplatten abarbeiten kann.

Technischer Hintergrund: Auf der Kommandozeile gilt intern nach wie vor die 8+3-Regel. Beim Namen selbst ist das kein Problem, weil etwa eine Datei Beispielname.DAT auf die eindeutige Bezeichnung Beispi~1.DAT gekürzt ist. Sobald allerdings die Erweiterung mehr als drei Buchstaben enthält, ist der 8+3-Name nicht mehr eindeutig: Eine Datei Beispiel.DATA heißt dann ebenfalls Beispi~1.DAT. Der Befehl "del *.dat" entsorgt folglich auch diese Datei.

Kommentieren Kommentare zu diesem Artikel (0)
690920