Birden fazla dosyayı 7-Zip ile arşiv başına üç dosyaya nasıl sıkıştırabilirim?


2

Buna benzeyen 100 dosyam var:

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

Onları böyle sıkıştırmak istiyorum:

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

7-Zip kullanarak bunu nasıl başarabilirim?


100 dosyanız varsa ve her 7zip dosyası 3 dosya içeriyorsa, son 7zip dosyası yalnızca 1 dosya içerir. -> Bu da şartın bir parçası mı?
Larry Morries

Yanıtlar:


2

Şey, buna bağlı ... Eğer Windows'ta Linux veya Linux benzeri bir kabuk (örneğin cygwin) kullanıyorsanız, bash veya python veya perl gibi en sevdiğiniz dili yazmak için basit bir programdır.

İşte bazı (denenmemiş;) sözde kod (bash'a biraz yakın, fakat fazladan fazladan sözdizimi olmadan).

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

Farklı bir sayıda dosya içeren arşivler oluşturmak için "3" ü bir değişkene (SIZE) değiştirebilirsiniz. Bunu yaparsanız, "2", SIZE-1 olur.

HTH


Çabaların için teşekkür ederim ve Windows 7 kullandığımı göstermediğim için üzgünüm. Yığın akışından mükemmel bir çözüm buldum, ancak bir gün cygwin kullanmaya başlarsam betiğinizin yardımcı olacağına eminim: D
WTFIsGoingOn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.