ภายใต้โฟลเดอร์images\
ฉันมีโฟลเดอร์ต่อไปนี้:
Usa\
Italy\
Japan\
ฯลฯ ..
ฉันต้องการสคริปต์ที่สร้างได้.zip
สำหรับแต่ละโฟลเดอร์เหล่านี้ดังนั้นผมจึงมีusa.zip
, ,italy.zip
japan.zip
ฉันจะทำสิ่งนั้นได้อย่างไร
ภายใต้โฟลเดอร์images\
ฉันมีโฟลเดอร์ต่อไปนี้:
Usa\
Italy\
Japan\
ฯลฯ ..
ฉันต้องการสคริปต์ที่สร้างได้.zip
สำหรับแต่ละโฟลเดอร์เหล่านี้ดังนั้นผมจึงมีusa.zip
, ,italy.zip
japan.zip
ฉันจะทำสิ่งนั้นได้อย่างไร
คำตอบ:
ฉันถือว่านี่เป็น Windows เพราะคุณกำลังใช้แบ็กสแลช
รับ7za.exe (รุ่นบรรทัดคำสั่งของ7-Zip ) %PATH%
และวางไว้ในของคุณ
จากนั้นเรียกใช้สิ่งนี้ภายในImages\
ไดเรกทอรีของคุณ:
for /f "tokens=* usebackq" %G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%~G.zip" "%~G"
หรือในชุดสคริปต์:
for /f "tokens=* usebackq" %%G in (`dir /b /a:d "%cd%"`) do 7za a -r -tzip "%%~G.zip" "%%~G"
สมมติว่าคุณอยู่บน Linux คุณสามารถใช้ Bash script เช่นนี้:
#!/bin/bash
IFS=$'\n'
for f in $(find "$1" -mindepth 1 -maxdepth 1 -type d ); do
zip -r "$f" "$f"
done
สคริปต์นี้จะนำอาร์กิวเมนต์แรกมาเป็นโฟลเดอร์ในกรณีนี้รูปภาพและทำการคืนระดับหนึ่งลึกเพื่อให้ได้โฟลเดอร์ทั้งหมดของคุณ (สหรัฐอเมริกาอิตาลีและญี่ปุ่น) และบีบอัดไว้ในตำแหน่งเดียวกัน
มันจะไม่ลบไฟล์ zip เก่าหรือโฟลเดอร์ต้นทาง Zip นั้นฉลาดพอที่จะตรวจจับไฟล์ zip ที่มีอยู่และอัปเดตเมื่อทำงานอีกครั้ง อย่างไรก็ตามหากคุณลบไฟล์ในโฟลเดอร์ซอร์สไฟล์นั้นจะไม่ถูกลบในไฟล์ซิป คุณอาจหลีกเลี่ยงพฤติกรรมนี้โดยการลบไฟล์ที่มีอยู่ก่อน
คุณสามารถใช้Winrarได้
Add to archive
เลือกโฟลเดอร์ของคุณทั้งหมดคลิกขวาและเลือก ตอนนี้เลือกตัวเลือกPut each file to separate archive
ภายใต้แท็บFiles
:
คลิกตกลงและคุณทำเสร็จแล้ว หากคุณต้องการไฟล์. zip แทนที่จะเป็น. rar เพียงเลือกZIP
ในGeneral
แท็บด้านArchive format
ล่าง
นี้คำตอบโดยMVGทำงานให้ฉันบน Ubuntu:
คุณสามารถใช้วงนี้ใน
bash
:for i in */; do zip -r "${i%/}.zip" "$i"; done
i
เป็นชื่อของตัวแปรลูป*/
หมายถึงทุกไดเรกทอรีย่อยของไดเรกทอรีปัจจุบันและจะรวมเครื่องหมายสแลชต่อท้ายในชื่อเหล่านั้น ตรวจสอบให้แน่ใจว่าคุณcd
ถูกที่แล้วก่อนดำเนินการนี้"$i"
เพียงชื่อไดเรกทอรีที่รวมถึงเครื่องหมายทับ เครื่องหมายคำพูดให้แน่ใจว่าช่องว่างในชื่อไดเรกทอรีจะไม่ทำให้เกิดปัญหา${i%/}
เป็นเหมือน$i
แต่มีการลบเครื่องหมายสแลชต่อท้ายดังนั้นคุณสามารถใช้เพื่อสร้างชื่อของไฟล์ซิปหากคุณต้องการดูวิธีการทำงานรวมถึง
echo
ก่อนzip
และคุณจะเห็นคำสั่งที่พิมพ์แทนการดำเนินการ