7zip: วิธีการยกเว้นไฟล์ (ไม่ใช่ประเภทไฟล์) โดยใช้ไฟล์รายการที่ไม่รวม


11

ฉันรู้ว่าคุณสามารถสร้างไฟล์ข้อความที่มีรายการไฟล์แล้วบอก 7zip ให้อ้างอิงไฟล์นี้เพื่อให้สามารถแยกไฟล์เหล่านั้นออกจากไฟล์เก็บถาวรได้ แต่ฉันไม่พบไวยากรณ์สำหรับสิ่งนั้น ใครช่วยได้บ้าง

คำตอบ:


9

หลังจากค้นหาไม่กี่ชั่วโมงฉันก็คิดออกในที่สุด นี่คือไวยากรณ์สวิตช์:

7z a -xr@exclude.txt backup.7z c:\whatever\*

แจ้งให้ทราบล่วงหน้า-xrแทน -xตัวrบ่งชี้แบบเรียกซ้ำเพื่อให้สามารถจับคู่ไฟล์ที่ถูกแยกในลำดับชั้นของโฟลเดอร์แบบลึก นอกจากนี้รูปแบบของไฟล์ข้อความอาจเป็นอย่างน้อย ANSI หรือ UTF-8

สำหรับไฟล์ที่มีไฟล์ดังที่ OldWolf พูดไว้มันเป็นรายการที่คั่นด้วย carriage return เช่นนี้

Telerik.Reporting.dll
Telerik.Reporting.Service.dll
Telerik.ReportViewer.WebForms.dll
Telerik.Web.Design.dll
Telerik.Web.UI.dll
*.txt

ทำงานเหมือนจับใจ


1
ขอบคุณ! ฉันพยายามแยกออกจากตัวเลือกสัญลักษณ์แทนและปรากฎว่าฉันไม่มีrตัวเลือก นี่เป็นวิธีที่ถูกต้องในการแยกไฟล์ PNG ซ้ำ ๆ ใน bash (อัญประกาศเดียวเพื่อหยุดการขยาย bash !และ*): -xr'!*.png' (แก้ไข: คำพูดเดี่ยวแทนการหลบหนี)
thomasa88

4

ฉันคิดว่าคุณต้องการสวิตช์ -x ด้วย @

7z a -t7z my.zip * -x@myexclusion.lst

ในการหวนกลับฉันรู้ว่าคุณอาจหมายถึงคุณต้องการไวยากรณ์สำหรับ listfile มันควรจะเป็นรายการคั่นบรรทัดขึ้นบรรทัดใหม่ คุณอาจพบปัญหาการเข้ารหัส 7z คาดว่ามันจะอยู่ในรูปแบบ UTF-8 คุณสามารถแทนที่ได้ด้วยสวิตช์ -scs หรือคุณสามารถบอกให้ notepad บันทึกไฟล์ในรูปแบบ UTF-8


2
ขอบคุณสำหรับการเตือนเกี่ยวกับการเข้ารหัสไฟล์ ฉันงงงวยหลายชั่วโมงว่าทำไมรายการยกเว้นของฉันไม่ถูกเชื่อฟัง ฉันสร้างไฟล์ในสคริปต์ PowerShell โดยใช้ Out-File ซึ่งเป็นค่าเริ่มต้นเป็น Unicode เปลี่ยนเป็นเอาต์พุต UTF8 และทันใดนั้นทุกอย่างก็ใช้ได้
WileCau

0

หากรายการของคุณจะสั้นจริง ๆ คุณสามารถมีมากกว่าหนึ่งแฟล็ก -x:

7z -r CppSourceJBR.zip * .cpp .h -x! stdafx -x! targetver.h

BTW ในขณะทดสอบฉันต้องลบไฟล์. zip ต่อไป เมื่อฉันลืมสิ่งนั้นตัวอย่างเช่น targetver.h ยังคงอยู่ใน ZIP จากการใช้งานครั้งล่าสุด

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