Hautpseite / Wissen / Batch – Verzeichnisstruktur auslesen – Ordner und Dateien kopieren – verschieben

Batch – Verzeichnisstruktur auslesen – Ordner und Dateien kopieren – verschieben

Heute will ich Euch kurz erklären, wie man mit Hilfe einer kleinen Batch Routine von einem Ordner die Unterverzeichnisse auslesen kann. Die Inhalte dieser Unterverzeichnisse an einen neuen Speicherort kopiert oder verschiebt und bei Bedarf die alten Ordner aus denen die Dateien und Ordner verschoben wurden löscht.

Anwendungsbeispiel hierfür wäre zum Beispiel:
Ihr habt mehre Archive und diese wurden z.B. in Tages-Ordnern abgelegt und dort entpackt und es entstanden dort beim Entpacken wieder neue Unterordner mit den eigentlichen Dateien. Die folgenden Batch Skripte kopieren nun die fertig entpackten Dateien und Ordner aus den Tages-Verzeichnissen auf die höhere Ebene und entfernen die temp. erzeugten Tages-Ordner.

Wobei die eigentlichen Script viel Platz für eigene Modifikationen bieten. So könnt man z.B. auch nur für eine Dateisicherung die Daten und Ordner an einen neuen Speicherort kopieren und damit sozusagen eine eigene kleine Datensicherung starten.

Wichtig ist nur zu sehen, welche Möglichkeiten es gibt. Die restlichen Anpassungen sind dann nicht weiter schwer.

Die beiden Skripte wurden so geschrieben, dass Leerzeichen weder im Basispfad noch in der Dateistruktur eine Rolle spielen.

Variante 1 lösen wir mit Robocopy – hier gibt es etwas weniger Platz für eigene Modifikationen:

@echo off
set /p verz=Gib den Dateipfad ein:
dir "%verz%\" /B /AD > "%verz%\inhalt.txt"
FOR /f "usebackq delims=" %%f IN ("%verz%\inhalt.txt") DO robocopy "%verz%\%%f" "%verz%" /MOVE /E
DEL "%verz%\inhalt.txt"
pause

Variante 2 arbeitet mit „xcopy“.
Info: Der Befehl „move“ ist nicht in der Lage Ordner zu verschieben.

@echo off
set /p verz=Gib den Dateipfad ein:
dir "%verz%\" /B /AD > "%verz%\inhalt.txt"
FOR /f "usebackq delims=" %%f IN ("%verz%\inhalt.txt") DO xcopy "%verz%\%%f\*" "%verz%\" /E 
FOR /f "usebackq delims=" %%f IN ("%verz%\inhalt.txt") DO rd "%verz%\%%f" /s /q
DEL "%verz%\inhalt.txt"
pause

Kurze Erklärung dazu:

In der zweiten Zeile setzen wir die „Variable“ „verz“ – diese gibt den Ordner an, in dem der „Zauber“ statt finden soll.

Zeile 3 checkt den Inhalt dieses Verzeichnisses und schreibt die Ordnerstruktur in das Textfile „inhalt.txt“ im gleichen Pfad weg.

Zeile 4 startet eine Schleife mit dem Kopier-Job.

Zeile 5 entfernt die alten Verzeichnisse in der gleichen Art und Weise wie die Zeile darüber. Sollen die Originaldaten nicht gelöscht werden, so kommentiert ihr diese Zeile einfach mit einem „rem“ aus.

Zeile 6 löscht die „inhalt.txt“ – da diese nun nicht mehr benötigt wird.
Das war es dann auch schon. Ich wünsche Euch viel Spaß bei den Modifikationen des Skripts!

Über EPICENTER

Martin Straub auf Google+

Interessant

MySQL – Passwort Sicherheitseinstellungen ändern

Sehr oft sind schon bei Standardinstallationen die Sicherheitslevel der MySQL Datenbank extrem hoch eingestellt. Das …

Kommentar verfassen

Send this to friend