Umstrukturierung von Verzeichnissen
Hallo zusammen,
nach einigen Stunden komme ich jetzt nicht mehr weiter und erhoffe mir hier Hilfe von euch.
Hier erstmal der Sachverhalt:
Ich habe ein Verzeichnis welches umstrukturiert werden muss. Bisher ist es nach dem folgeden Schema aufgebaut:
W:\1000 - Ein_Name
W:\1001 - Bla
W:\1002 - AndererName
W:\1005 - Blubb und so
...
Dies geht so weiter bis zum Ordner 5520.
Alle diese Ordner erhalten bis zu 3 Unterordner.
- Dokumentation
- Datenträger
- Information
Diese 3 können alle oder auch nur teilweise vorkommen. (Aber es ist immer mindestens einer vorhanden, andernfalls fehlt der Überordner wie im Beispiel oben die Ordner 1003 und 1004.
Jeder dieser Ordner erhält wieder einen oder mehrere Ordner. Ich nehme sie jetzt einfach mal A, B, C und D.
Hier mal ein Auszug:

Nun mein Problem:
Ansatt das die Order A, B,C und D in den Ordnern Dokumentation, Datenträger und/oder Information liegen, sollen die 3 genannten Ordner innerhalb der Ordner A, B,C, und D liegen. Natürlich darf dabei der Inhalt nicht verloren gehen.
Bisher kam ich soweit:
Leider steht sogar in meinen echo Ausgaben nix.
nach einigen Stunden komme ich jetzt nicht mehr weiter und erhoffe mir hier Hilfe von euch.
Hier erstmal der Sachverhalt:
Ich habe ein Verzeichnis welches umstrukturiert werden muss. Bisher ist es nach dem folgeden Schema aufgebaut:
W:\1000 - Ein_Name
W:\1001 - Bla
W:\1002 - AndererName
W:\1005 - Blubb und so
...
Dies geht so weiter bis zum Ordner 5520.
Alle diese Ordner erhalten bis zu 3 Unterordner.
- Dokumentation
- Datenträger
- Information
Diese 3 können alle oder auch nur teilweise vorkommen. (Aber es ist immer mindestens einer vorhanden, andernfalls fehlt der Überordner wie im Beispiel oben die Ordner 1003 und 1004.
Jeder dieser Ordner erhält wieder einen oder mehrere Ordner. Ich nehme sie jetzt einfach mal A, B, C und D.
Hier mal ein Auszug:

Nun mein Problem:
Ansatt das die Order A, B,C und D in den Ordnern Dokumentation, Datenträger und/oder Information liegen, sollen die 3 genannten Ordner innerhalb der Ordner A, B,C, und D liegen. Natürlich darf dabei der Inhalt nicht verloren gehen.
Bisher kam ich soweit:
@CHCP 1252
@REM Umstellen der Zeichentabelle auf die westeuropäische für die Verwendung von Umlaute
FOR /L %%N IN (1000,1,5520) DO (
@REM Schleife von 1000 bis 5520 für das Erfassen aller Ordner
SET /A doku=0
SET /A info=0
SET /A file=0
SET /A mandant=0
SET /A folder=0
@REM Zurücksetzen der Variabeln auf 0
IF EXIST "W:\%% -*" (
CD "W:\%%N -*"
SET FPATH="%CD%"
echo %FPATH%
pause
@REM Wechseln in das Unterverszeichnis
IF EXIST "Dokumentation" (
SET doku=1
IF EXIST "Information" (
SET info=1
IF EXIST "Datenträger" (
SET file=1
@REM Überprüfen ob die Unterverzeichnise existieren
CD "Datenträger"
FOR /F %%i in ('dir /B /Ad') DO (
SET /A cfolder=cfolder+1
@REM Zählen der Ordner im entsprechenden Verzeichnis
echo %cfolder%
xcopy "W:\%FPATH%\Datenträger\* " "W:\%FPATH%\" /C /I /R /Y
)
)
)
)
)
)
Leider steht sogar in meinen echo Ausgaben nix.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 285115
Url: https://administrator.de/forum/umstrukturierung-von-verzeichnissen-285115.html
Ausgedruckt am: 03.05.2025 um 04:05 Uhr
5 Kommentare
Neuester Kommentar
Hey, dann müssten zum Beispiel im Unterordner 3459 die Dateien der beiden KSK-Verzeichnisse gemerged werden und die Verzeichnisse Dokumentation und Information dupliziert werden? Meine Frage zielt darauf ab, wo sich Dateien befinden und was mit denen geschehen soll, denn ein so strukturierter Verzeichnisbaum ist leicht zu erstellen.
Gruß, Endoro
Gruß, Endoro
Hey,
der beste Weg, der mir eingefallen ist, geht über ein temporäres Verzeichnis. Dafür sollten sich alle zu bearbeitenden Ordner und nur die in einem übergeordneten Ordner befinden, also zB so:
W:\ROOT\1000 - Ein_Name
W:\ROOT\1001 - Bla
W:\ROOT\1002 - AndererName
W:\ROOT\1005 - Blubb und so
Dieser Ordner, hier
Das Löschen von
Gruß, Endoro
der beste Weg, der mir eingefallen ist, geht über ein temporäres Verzeichnis. Dafür sollten sich alle zu bearbeitenden Ordner und nur die in einem übergeordneten Ordner befinden, also zB so:
W:\ROOT\1000 - Ein_Name
W:\ROOT\1001 - Bla
W:\ROOT\1002 - AndererName
W:\ROOT\1005 - Blubb und so
Dieser Ordner, hier
ROOT\
, wäre der Aufrufparameter für die folgende Batch:@echo off &setlocal disabledelayedexpansion
if "%~1"=="" echo Missing folder name.&exit /b 1
cd "%~1" || (echo Folder "%~1" not found.&exit /b 1)
set "TempDir=%random%.TMP"
echo TMP dir is "%TempDir%".
for /d %%a in (*) do for /d %%b in ("%%~a\*") do for /d %%c in ("%%~b\*") do (
md "..\%TempDir%\%%~a\%%~nxc\%%~nxb"
move "%%~c\*" "..\%TempDir%\%%~a\%%~nxc\%%~nxb"
)
Das Löschen von
ROOT\
und Umbenennen des temporären Verzeichnis bitte von Hand erledigen.Gruß, Endoro