Cela dépend de .... Si vous utilisez Linux ou un Shell de type Linux (par exemple cygwin) sous Windows, c'est un programme simple à écrire en bash ou dans votre langage préféré comme Python ou perl.
Voici un pseudo-code (non testé ;) ) (assez proche de bash, mais sans tout un tas de syntaxes supplémentaires nécessaires).
I=0 ##File counter
J=1 ##Archive counter
## the following while strategy will work in most languages as long as you don't
## have thousands of files - if you do, read them in 1 at a time in the loop
while FILE in <list-of-files-to zip> ## Loop across all files like *.txt
do
if I mod 3 == 0 ## If we're at the start of a new archive
then
COMMAND="7z -a archive"J".7z " FILE " " ##Start a new command line for archive "J"
J++
else
COMMAND=COMMAND FILE ##append the next file name to the command string
if I mod 3 == 2 ## if the desired number of files are appended
then
append COMMAND string to a script file to run later
or run it directly right here
COMMAND="" ## clear the COMMAND string
fi
fi
I++
done
## Handle left over files
I-- ## Loop increments I after last file
if I mod 3 != 2
then
append COMMAND string to a script file to run later
or run it directly right here
fi
Vous pouvez remplacer le "3" par une variable (SIZE) pour créer des archives avec un nombre différent de fichiers. Dans ce cas, le "2" devient SIZE-1.
HTH
0 votes
Si vous avez 100 fichiers et que chaque fichier 7zip contient 3 fichiers, le dernier fichier 7zip ne contiendra qu'un seul fichier. -> Cela fait-il également partie des exigences ?