
Ich arbeite in einem Verzeichnis test
mit folgendem Inhalt
- Unterverzeichnis1
- Unterverzeichnis2
- Unterverzeichnis3
- ...
- unterverzeichnisxxx
Ich habe eine CSV-Liste mit den Namen der Unterverzeichnisse, die ich in mein Archiv aufnehmen muss, sagen wir:
subdir2, subdir4, subdir7
Ich muss die Unterverzeichnisse (und deren Inhalte) aus der CSV-Liste zu einem ZIP-Archiv hinzufügen und dabei die Pfade beibehalten.
Ich habe eine pseudo-funktionierende Zeile:
for /f "delims=*" %%i in (list.csv) do (xcopy "path\to\maindir\" "path\to\a\newdir" /S /E
und dann archiviere ich den neuen Ordner manuell, aber ich möchte diesen Vorgang automatisieren.
Bearbeiten:
Ich muss die Unterverzeichnisse nicht in ein neues Verzeichnis kopieren list.csv
, sondern die Unterverzeichnisse und Dateien aus der Liste in einem ZIP-Archiv archivieren und dabei den Verzeichnisbaum beibehalten. Das Archiv sollte die folgende Struktur haben:
test\Unterverzeichnis2\
test\Unterverzeichnis4\
test\Unterverzeichnis7\
und so weiter...
Antwort1
Mit Hilfe von @PimpJuiceIT kam ich am Ende auf so etwas:
@ECHO ON
SET SourceDir=drive:\path\to\source
SET DestDir=drive:\path\to\destination
SET PathToCSV=drive:\path\to\list.csv
for /f "delims=*" %%i in ("%PathToCSV%") do (xcopy "%SourceDir%\%%~i" "%DestDir%\%%~i\" /S /E /I)
pause
CD /D "C:\Program Files\7-Zip"
7z.exe a "%DestDir%\zipfile.zip" "%DestDir%"
pause
Dies ist hinsichtlich des Speicherplatzes wahrscheinlich nicht die beste Vorgehensweise und sollte daher bei großen Datenmengen MIT VORSICHT verwendet werden.