Dateioperationen: Alternativen zum Windows Explorer
Auf modernen Betriebssystemen mit einer graphischen Benutzungsoberfläche (GUI) können Arbeiten an Dateien und Ordnern mittels Dateimanagern durchgeführt werden. Unter Windows ist hierfür standardmäßig der Explorer verfügbar. Die visuelle Manipulation der übersichtlich angezeigten Objekte ist in vielerlei Hinsicht vorteilhaft.
Wenn sich solche Arbeitsvorgänge aber auf ganze Ordner bzw. umfangreiche Dateikollektionen beziehen sollen, kommen gravierende Nachteile ans Licht, die im Wesentlichen darin begründet sind, dass diese Art von Software ganz auf ein interaktives Arbeiten ausgelegt ist. Der Anwender ist daher im Grunde gezwungen, den gesamten Vorgang zu überwachen, weil mit mehreren unvorhergesehenen Unterbrechungen gerechnet werden muss.
Meist liegt dies nur daran, dass ein einzelnes Objekt aus Sicherheitsgründen nicht ohne Rückfrage in den gewünschten Vorgang einbezogen wird. Das ist positiv, wenn der Benutzer den Grund übersehen hatte, ansonsten jedoch sehr lästig. Das eigentliche Problem dabei ist nämlich, dass diese Unterbrechung irgendwann auftreten kann. Dateimanager wie der Explorer erfragen eine Entscheidung erst dann, wenn sie benötigt wird. Wer mit größeren Dateibeständen arbeiten will – und dies vielleicht auch noch wiederholt – sollte ein Programm wählen, das ohne Rückfragen abläuft und dessen Einsatz zudem besser automatisierbar ist.
Kopieren
Eine der häufigsten und wichtigsten Aufgaben dürfte das Kopieren von Dateien darstellen, insbesondere zur Übertragung zwischen der PC-Festplatte und einem Wechseldatenträger. Es ist recht einfach, Ordner bzw. Dateien mit dem Explorer auszuwählen und einen Kopiervorgang einzuleiten. Allerdings kann es aus mehreren Gründen zu Unterbrechungen kommen. So hält der Vorgang an, wenn ein Zielobjekt (Datei/Ordner) bereits vorhanden ist – und ein weiteres Mal, wenn er danach noch auf eine »geschützte« Datei trifft. 1
Wer beispielsweise Sicherungskopien ganzer Ordner erzeugen und den vielleicht länger dauernden Kopiervorgang sich selbst überlassen will, kann diese Rückfragen üblicherweise nicht gebrauchen. Deshalb habe ich im Artikel Hinweise zur Datensicherung ja auch auf die Möglichkeiten von Kopierbefehlen (Konsolenprogrammen) wie XCOPY hingewiesen. Es ist nicht so, dass mit solchen Programmen interaktives Vorgehen gänzlich ausgeschlossen wäre. Aber in der Regel, und darauf kommt es hier an, lassen sich bestimmte Entscheidungen vorwegnehmen, die ansonsten erst im Bedarfsfall erfragt würden.
Dies gelingt deshalb, weil die Arbeitsweise solcher Programme bereits beim Aufruf über (zusätzliche) Parameter gesteuert werden kann. Im beispielhaften Aufruf von XCOPY
xcopy "Meine Daten" "E:\Meine Daten" /e /r /v /c /i /y
bestimmen die Parameter »/r« und »/y«, dass der Kopiervorgang alle am Zielort eventuell schon vorhandenen Dateien ohne Rückfrage überschreiben darf. Und mit dem Parameter »/c« wird angewiesen, im Fehlerfall tunlichst fortzufahren. 2
Der oben erwähnte Artikel enthält weitere Informationen und bietet zudem ein Script an (Beschreibung hier), das speziell für Sicherungskopien konzipiert wurde. Eine ähnliche Anwendung steht mit den FolderCopy-Scripts zur Verfügung.
Löschen
Die Löschung von Ordnern und Dateien scheint in aller Regel ohne Fragerei und Schwierigkeiten abzulaufen. Das liegt meist aber daran, dass diese Objekte dann nicht wirklich gelöscht, sondern nur in ein besonderes Systemverzeichnis verschoben werden. Dieses Verzeichnis, das auf GUI-Ebene typischerweise als »Papierkorb« oder »Mülleimer« dargestellt wird, erlaubt die Wiederherstellung der gelöschten Objekte. Im Grunde ist der Löschvorgang somit nur aufgeschoben worden.
Bei der tatsächlichen (endgültigen) Löschung von Dateien gibt es durchaus einige Umstände, die zu einer Unterbrechung mit Rückfrage führen. Auch hier hält der Vorgang an, wenn er auf eine »geschützte« Datei trifft. Dies kann sogar mehrmals geschehen, weil der Explorer dabei mindestens 3 Typen unterscheidet und einzeln behandelt (schreibgeschützte Datei, Systemdatei und Programmdatei), die Zustimmung zur Löschung also für jeden dieser Dateitypen einholt.
Natürlich sind solche Hinweise überaus nützlich. Und doch gibt es wiederum Anwendungsfälle, wo die ungestörte Löschung von Ordnerstrukturen gewünscht ist. Auch hier empfiehlt sich der Rückgriff auf Konsolenprogramme:
attrib -r -s -h "Alte Daten"\*.* /s /d rd /s /q "Alte Daten"
Diese Kombination zweier »DOS«-Befehle bewirkt, dass alle Dateien innerhalb des Ordners Alte Daten die besonderen Attribute verlieren, die einer Löschung entgegenstehen könnten. Sodann wird der Ordner mit dem gesamten Inhalt gelöscht.
Für diese Aufgabenstellung gibt es unter Windows noch weitere Lösungsmöglichkeiten. So kann die Ordnerlöschung auch mittels VBScript durchgeführt werden:
Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFolder "Alte Daten", vbTrue
In der gepackten Datei killdirs.zip sind beide Realisierungen als Miniprogramme enthalten, wobei der Ordnername natürlich jeweils als variabler Parameter eingesetzt ist, also beim Programmaufruf angegeben wird. Beide Programme gehen auch ein wenig über die eben gezeigten Anweisungen hinaus, weil sie den Parameter auswerten und ggfs. kurze Mitteilungen anzeigen. (Die Texte sind in Englisch gehalten, doch mit der Datei killdirs_de.zip sind auch deutschsprachige Varianten verfügbar.)
- Das Script killdir.vbs eignet sich zur Integration in den Explorer, kann aber auch direkt aufgerufen werden:
killdir "Alte Daten" /quiet
-
Die Befehlsdatei killdir2.bat ist für den Start in einem Konsolenfenster gedacht:
killdir2 "Alte Daten"
Anmerkungen:
1) Der Vorgang hält außerdem immer an, wenn ein Fehler auftritt, wobei eine Fortsetzung oft nicht möglich ist. Aber dieses Problem kann prinzipiell auch bei nicht-interaktiven Programmen, z.B. Konsolenbefehlen, auftauchen (vgl. Anmerkung 2).
2) Diese »Fehlerignoranz« macht durchaus Sinn, gerade wenn es um Sicherungskopien geht. Dadurch wird vermieden, dass ein Fehler das Kopieren der übrigen Ordner und Dateien verhindert.
Diese Einstellung hilft jedoch nicht, wenn eine Datei für das Zieldateisystem zu groß ist. Leider kann das auch unabhängig von der freien Kapazität passieren, wenn nämlich eine Datei > 4GB auf ein FAT-Laufwerk kopiert werden soll. Die meisten Programme behandeln (und melden) das Problem, als wäre das Ziellaufwerk voll. Auch XCOPY bricht den Vorgang an dieser Stelle ab.