Пакетная архивация нескольких файлов в одном каталоге - PullRequest
0 голосов
/ 11 ноября 2018

Мне нужно сделать пакетный скрипт, который будет работать следующим образом:

Там есть папка с сотней файлов.Мне нужно сделать скрипт, который архивирует каждые 4 файла в один архив.Затем все созданные архивы должны быть упакованы в один большой архивный файл.Все это должно быть сделано одним скриптом.

Я пытался сделать это, но я не представляю, как это сделать таким образом.

Это то, что я написал первым:

@ECHO ON
SET SourceDir=C:\Users\Ridaan\Documents\sobol
SET DestDir=C:\folder\Destination

CD /D "C:\Program Files\7-Zip"
FOR /F "TOKENS=*" %%F IN ('DIR /B /A-D "%SourceDir%"') DO (
    7z.exe a "%DestDir%\%%~NF.zip" "%SourceDir%\%%~NXF"
)
EXIT

И второй:

@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
robocopy C:\folder\Destination /COPY:DAT /V /XO /NJH /NP /R:1000 /W:10
7z u -mx9 "C:\folder\End.7z" "C:\folder\Destination"
rmdir C:\folder\End\ /Q /S

:END
pause

1 Ответ

0 голосов
/ 11 ноября 2018

Просто чтобы дать вам представление о подсчете файлов и

  • вычисление целого числа / 4 для номера почтового индекса
  • модуль% 4 для номера файла (0..3), чтобы определить, является ли это новый zip для создания или добавления к zip.

:: Q:\Test\2018\11\11\SO_53251220.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion

set Cnt=0
Set "SrcDir=X:\Your\Path"
For /F "delims=" %%A in ('Dir /B/A-D "%SrcDir%\*"') do (
  Set /A "File=Cnt%%4,Zip=Cnt/4,Cnt+=1"
  Echo Cnt=!Cnt! File=!File! Zip=!Zip! File=%%A
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...