Archivieren Sie eine CSV-Liste mit Unterordnern

359
Alex

Ich arbeite in einem Verzeichnis testmit folgendem Inhalt

  • Unterverzeichnis1
  • subdir2
  • subdir3
  • ...
  • subdirxxx

Ich habe eine CSV-Liste mit den Namen der Unterverzeichnisse, die ich in mein Archiv aufnehmen muss.

subdir2, subdir4, subdir7 

Ich muss die Unterverzeichnisse (und deren Inhalt) aus der CSV-Liste zu einem ZIP-Archiv hinzufügen und die Pfade beibehalten.

Ich habe eine Pseudo-Arbeitslinie:

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 Prozess automatisieren.

Bearbeiten:

Ich muss die list.csvUnterverzeichnisse nicht in ein neues Verzeichnis kopieren. Ich muss die Unterverzeichnisse und Dateien aus der Liste in ein ZIP-Archiv archivieren, wobei der Verzeichnisbaum erhalten bleibt. Das Archiv sollte folgende Struktur haben:

test \ subdir2 \

test \ subdir4 \

test \ subdir7 \

und so weiter...

1
Ja, Sie können dies automatisieren und die Beispiellogik hier anzeigen: https://superuser.com/questions/1300346/how-to-recompress-many-zips-on-a-drive/1302473#1302473 mit 7Zip. Grundsätzlich können Sie die "7Z.exe" einen "%% ~ Fi" "- Pfad \ zu \ a \ newdir \ %% ~ Ni.zip" `verwenden, aber hier ist ein weiteres Beispiel, https://superuser.com/questions/ 1188394 / using-a-batch-file-to-zip-files-als-individual-zip-files / 1188406 # 1188406 Testen Sie es einfach und versuchen Sie es zu bestätigen. Pimp Juice IT vor 6 Jahren 1
@PimpJuiceIT Ich habe die Frage aktualisiert Alex vor 6 Jahren 0
Oh ja, das macht Sinn - ich helfe gerne Pimp Juice IT vor 6 Jahren 0

1 Antwort auf die Frage

0
Alex

Mit Hilfe von @PimpJuiceIT bekam ich so etwas wie:

@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 wahrscheinlich nicht die bewährte Methode in Bezug auf den Speicherplatz. Daher sollten Sie WITH CARE für große Datenblöcke verwenden.

Ihr xcopy-Befehl enthält keinen Verweis auf die for-Variable, die das iterierte Unterverzeichnis enthält. Wie sollte das Problem gelöst werden? LotPings vor 6 Jahren 1
Ich habe den Befehl aktualisiert. Auf diese Weise werde ich jedoch jedes Mal aufgefordert, ein neues Verzeichnis zu erstellen. Ich versuche gerade herauszufinden, wie ich `xcopy` sagen kann, dass ich die Verzeichnisse automatisch erstellen möchte. Alex vor 6 Jahren 0
Ich habe herausgefunden, dass ich den nachstehenden Schrägstrich bei% DestDir% \ %% ~ i \ und dem Schalter / I nicht gefunden habe Alex vor 6 Jahren 0