Ma suggestion serait d'utiliser quelque chose comme un script personnalisé, qui serait vous donnerait également une bonne flexibilité.
Puisque vous utilisez Windows, j'ai rapidement développé une simple PowerShell script pour vous qui ne nécessite même pas WinRAR .
Créer un .ps1 fichier texte (par exemple Créer-MultiZip.ps1 ) avec le contenu suivant :
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++;
}
}
Exécutez-la ensuite dans un environnement PowerShell, en fournissant le dossier contenant le fichier fichiers à compresser, suivi du dossier qui contiendra les fichiers compressés. zip. Par exemple :
Create-MultiZip.ps1 C:\tmp\input C:\tmp\output
Que fait le script ?
Fondamentalement, il obtient une liste de tous les fichiers dans le dossier d'entrée, puis chaque fichier est ajouté à la liste des fichiers. archive1.zip dans le dossier de sortie, jusqu'à ce que la taille de l'ensemble préfixé soit atteinte. À ce moment-là, un nouveau fichier archive2.zip est créé, comme précédemment... et ainsi de suite, jusqu'à ce que tous les fichiers en entrée aient été traités.
Notez que les fichiers résultants sont appelés archive<n>.zip
où n
représente le numéro progressif pour chaque fichier zip.
Le cœur du script est la fonction Compress-Archive
cmdlet . Il a récemment été introduit dans PowerShell 5.0, qui est fourni par défaut dans Windows 10.
Si vous connaissez un peu Powershell, le script peut être facilement amélioré, par exemple en ajoutant une balise CompressionLevel
ou une sortie de texte dans la console.
Il est également simple de changer le nombre de fichiers que vous voulez dans chaque ensemble, il suffit de modifier la valeur constante à la ligne suivante :
Set-Variable SET_SIZE -option Constant -value 10
J'ai testé le script brièvement et il fonctionne bien - il va sans dire que vous devriez l'essayer sur quelques fichiers de test d'abord.