Minha sugestão seria usar algo como um script personalizado, que seria também lhe dá uma boa flexibilidade.
Como você está usando o Windows, desenvolvi rapidamente um script do PowerShell simples para você que nem exige o WinRAR .
Crie um arquivo de texto .ps1 (por exemplo, Create-MultiZip.ps1 ) com o seguinte conteúdo:
param
(
# The input folder containing the files to zip
[Parameter(Mandatory = $true)]
[string] $InputFolder,
# The output folder that will contain the zip files
[Parameter(Mandatory = $true)]
[string] $OutputFolder
)
Set-Variable SET_SIZE -option Constant -value 10
$i = 0
$zipSet = 0
Get-ChildItem $InputFolder | ForEach-Object {
$zipSetName = "archive" + ($zipSet + 1) + ".zip"
Compress-Archive -Path $_.FullName -Update -DestinationPath "$OutputFolder\$zipSetName"
$i++;
if ($i -eq $SET_SIZE) {
$i = 0;
$zipSet++;
}
}
Em seguida, execute-o em um ambiente do PowerShell, fornecendo a pasta que contém o arquivos que você deseja compactar, seguidos pela pasta que conterá o zip arquivos. Por exemplo:
Create-MultiZip.ps1 C:\tmp\input C:\tmp\output
O que o script faz?
Basicamente, ele obtém uma lista de todos os arquivos na pasta de entrada, então cada arquivo é adicionado ao arquivo archive1.zip na pasta de saída, até que o tamanho do conjunto prefixado seja atingido. Nesse ponto, um novo arquivo archive2.zip é criado, o mesmo de antes ... e assim por diante, até que todos os arquivos na entrada tenham sido processados.
Observe que os arquivos resultantes são chamados de archive<n>.zip
, em que n
representa o número progressivo de cada arquivo zip.
O coração do script é o Compress-Archive
cmdlet . Foi introduzido recentemente com o PowerShell 5.0, que vem por padrão no Windows 10.
Se você conhece o Powershell um pouco, o script pode ser facilmente melhorado, por exemplo, adicionando um CompressionLevel
ou alguma saída de texto ao console.
Também é simples alterar o número de arquivos que você deseja em cada conjunto, basta modificar o valor constante na seguinte linha:
Set-Variable SET_SIZE -option Constant -value 10
Eu testei o script rapidamente e ele funciona bem - não é preciso dizer que você deve testar alguns arquivos de teste primeiro.