Як я можу стиснути декілька файлів на три файли в архіві з 7-Zip?


2

У мене 100 файлів, які виглядають так:

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

Я хочу стиснути їх так:

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

Як досягти цього за допомогою 7-Zip?


Якщо у вас є 100 файлів і кожен файл 7zip містить 3 файли, то останній файл 7zip буде містити лише 1 файл. - & gt; Чи є ця частина вимоги теж?
Larry Morries

Відповіді:


2

Ну, це залежить .... Якщо ви використовуєте Linux або Linux-подібну оболонку (наприклад, cygwin) у Windows, це проста програма для запису в bash або улюблену мову, як python або perl.

Ось деякі (неперевірені;)) псевдокоди (дещо близькі до bash, але без великої кількості додаткового необхідного синтаксису).

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

Ви можете змінити "3" на змінну (SIZE), щоб створити архіви з різною кількістю файлів. Якщо ви це зробите, то "2" стає SIZE-1.

HTH


Дякуємо вам за ваші зусилля і вибачте за не вказуючи я використовую Windows 7. У мене є ідеальне рішення від stackflow, але я впевнений, що ваш сценарій буде корисним, якщо я почну використовувати cygwin коли-небудь: D
WTFIsGoingOn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.