
Estoy trabajando en un directorio test
con el siguiente contenido.
- subdir1
- subdir2
- subdir3
- ...
- subdirxxx
Tengo una lista csv con los nombres de los subdirectorios que necesito incluir en mi archivo, por ejemplo:
subdir2, subdir4, subdir7
Necesito agregar los subdirectorios (y su contenido) de la lista CSV a un archivo .zip, manteniendo las rutas.
Tengo una línea pseudo-funcional:
for /f "delims=*" %%i in (list.csv) do (xcopy "path\to\maindir\" "path\to\a\newdir" /S /E
y luego archivo manualmente la nueva carpeta, pero me gustaría automatizar este proceso.
Editar:
No necesito copiar los list.csv
subdirectorios a un nuevo directorio, necesito archivar los subdirectorios y archivos de la lista en un archivo .zip, preservando el árbol de directorios. El archivo debe tener la siguiente estructura:
prueba\subdir2\
prueba\subdir4\
prueba\subdir7\
etcétera...
Respuesta1
Con la ayuda de @PimpJuiceIT terminé con algo como esto:
@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
Probablemente esta no sea la mejor práctica con respecto al espacio en disco, por lo que debe usarse CON CUIDADO en grandes cantidades de datos.