ฉันจะบีบอัดหลายไฟล์เป็นสามไฟล์ต่อการเก็บถาวรด้วย 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 ไฟล์เท่านั้น -> ข้อกำหนดนี้เป็นส่วนหนึ่งด้วยหรือไม่
Larry Morries

คำตอบ:


2

ถ้าคุณใช้ Linux หรือเชลล์เหมือน Linux (เช่น cygwin) ใน Windows มันเป็นโปรแกรมง่ายๆที่เขียนด้วย bash หรือภาษาที่คุณชอบเช่น python หรือ perl

นี่คือโค้ดหลอกบางอัน (ยังไม่ทดสอบ;) (ค่อนข้างใกล้เคียงกับการทุบตี แต่ไม่มีไวยากรณ์ที่จำเป็นเพิ่มเติมทั้งหมด)

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.