
test
다음 내용이 포함된 디렉토리에서 작업 중입니다.
- 하위 디렉터리1
- 하위 디렉터리2
- 하위 디렉터리3
- ...
- 하위 디렉터리xxx
내 아카이브에 포함해야 하는 하위 디렉터리 이름이 포함된 csv 목록이 있습니다.
subdir2, subdir4, subdir7
경로를 유지하면서 CSV 목록의 하위 디렉터리(및 해당 내용)를 .zip 아카이브에 추가해야 합니다.
의사 작업 라인이 있습니다.
for /f "delims=*" %%i in (list.csv) do (xcopy "path\to\maindir\" "path\to\a\newdir" /S /E
그런 다음 새 폴더를 수동으로 보관하지만 이 프로세스를 자동화하고 싶습니다.
편집하다:
하위 디렉터리를 새 디렉터리에 복사할 필요가 없으며 list.csv
디렉터리 트리를 유지하면서 목록의 하위 디렉터리와 파일을 .zip 아카이브로 보관해야 합니다. 아카이브는 다음과 같은 구조를 가져야 합니다:
테스트\하위 디렉터리2\
테스트\하위 디렉터리4\
테스트\하위 디렉터리7\
등등...
답변1
@PimpJuiceIT의 도움으로 나는 다음과 같은 결과를 얻었습니다.
@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
이는 디스크 공간과 관련하여 최선의 방법은 아닐 수 있으므로 큰 데이터 청크에 주의해서 사용해야 합니다.