2 votes

Comment puis-je compresser plusieurs fichiers en trois fichiers par archive avec 7-Zip ?

J'ai 100 fichiers qui ressemblent à ceci :

001.txt
002.txt
003.txt
004.txt
.....
100.txt

Je veux les compresser comme ceci :

001.txt
002.txt ----> archive01.7z
003.txt
---------
004.txt
005.txt ----> archive02.7z
006.txt

Comment puis-je y parvenir en utilisant 7-Zip ?

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 ?

2voto

Eigir Points 471

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X