
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
これはおそらくディスク容量に関するベストプラクティスではないため、大量のデータに対しては注意して使用する必要があります。