Làm cách nào để tôi nén một loạt các tệp có cùng tên với đường dẫn của chúng?


2

Tôi có nhiều tệp có cùng tên trong nhiều thư mục trong suốt dự án trên PC Windows. Có hàng trăm ngàn tệp nguồn trong hàng ngàn thư mục.

Họ cần phải được gửi đi để nội địa hóa. Không có mã nguồn nào có thể đi với chúng - chỉ các tệp thuộc tính, vì vậy tôi không thể chỉ nén toàn bộ dự án và gửi nó đi.

  • Tôi không thể tặc chúng trong một tệp zip - nó yêu cầu các tên duy nhất.

  • Tôi đã thử sử dụng Agent Ransack, nó sẽ liệt kê tất cả các tệp trong đường dẫn của chúng, nhưng thật đáng buồn là 7Zip bỏ qua các đường dẫn và phàn nàn về việc thiếu tên duy nhất.

Những gì tôi cần là một cách viết kịch bản hoặc tự động để chỉ lấy các tệp thuộc tính nhất định trong các thư mục tương ứng của chúng vào một kho lưu trữ zip. Sau đó, chúng có thể được giải nén ngay trên những cái hiện có khi chúng quay lại trong một thao tác.


1
Bạn đang dùng hệ điều hành nào? Nếu cửa sổ, lệnh FOR sẽ giúp bạn ra ngoài.
LPChip

1
"Có hàng trăm ngàn tệp nguồn trong hàng ngàn thư mục" rùng mình
user236012

"Chúa ơi, nó chứa đầy các tập tin!"
K7AAY

Như đã đề cập bằng cách sử dụng lệnh FOR này, bạn có thể đạt được ở đây kiểm tra chủ đề này sourceforge.net/p/sevenzip/discussion/45797/thread/a7639897 có thể giúp bạn có một số ý tưởng.
vembutech

Câu trả lời:


3
7z a -tzip project.zip -ir!DIR1\*.cpp

sẽ đi ra ngoài và lấy tất cả các tệp có phần mở rộng .cpp trong và dưới DIR1 và đặt chúng vào một kho lưu trữ có tên là project.zip. Sau đó, thêm nhiều tệp có phần mở rộng .abc vào kho lưu trữ đó với

7z u project.zip -ir!DIR1\*.abc

-t chỉ định Loại lưu trữ (ZIP). Các -i-r switch được kết hợp thành -iRtôi ncludes tên tập tin và R ecurses thư mục con. Ký tự đại diện hoặc tên tệp có dấu cách phải được trích dẫn, la "Dir \ Program files *" hoặc Dir \ "Tệp chương trình" *

-

Bạn cũng có thể tạo danh sách các tệp tin để bao gồm, với các ký tự đại diện, sau đó chỉ đặt các tệp đó vào kho lưu trữ, với:

7z a -r -tzip archive.zip @listfile.txt

-

Vì bạn đã sử dụng các quy ước đặt tên nhất quán và duy nhất cho các tệp mã nguồn của mình, bạn có thể loại trừ các tệp bạn không muốn khỏi kho lưu trữ tại thời điểm tạo bằng cờ -x, la:

7z a -r archive1.zip subdir\ -x!*.src

sẽ tạo ra một kho lưu trữ không bao gồm các tệp kết thúc bằng .src

Tệp trợ giúp đi kèm với 7-zip mà bạn có thể truy cập từ trong phiên bản GUI của ứng dụng có nhiều chi tiết hơn và nhiều công tắc hơn.

-

Nếu nó không quá lớn, thay vào đó tôi có thể đề nghị sử dụng 7z từ dòng lệnh để quét mọi thứ, sau đó xóa mã nguồn khỏi kho lưu trữ trước khi truyền.

7z a -r archive1.zip subdir\

thêm tất cả các tệp và thư mục con trong và dưới thư mục con để lưu trữ archive1.zip. Các đặc tả tệp trong kho lưu trữ sẽ chứa tiền tố phụ \.

Sau đó sử dụng Trình quản lý tệp 7zip để xóa các tệp mã nguồn.


Có hàng trăm ngàn tệp nguồn trong hàng ngàn thư mục - việc xóa chúng khỏi zip theo cách thủ công khó hơn so với tìm nạp thủ công từng tệp và tạo thư mục bằng tay.
davidjmcclelland

Cảm ơn câu trả lời cập nhật. Có lẽ tôi có thể sử dụng bộ lọc phù hợp trong dòng lệnh - chỉ có hai tên tệp tôi được chứa trong hàng ngàn thư mục, do đó có thể hoạt động.
davidjmcclelland

7z a -tzip -r "C: \ Users \ me \ path \ UI Team \ LANGUAGE_STRINGS \ message.zip" tin nhắn _ ??. Thuộc tính 7z a -tzip -r "C: \ Users \ me \ path \ UI Team \ LANGUAGE_STRINGS \ jspResource.zip "jspResource _ ??. các thuộc tính Với hai lệnh này tôi chỉ nhận được các tệp tôi cần có chung tên tệp. Tôi đã không sử dụng FOR hoặc vòng lặp, 7-Zip đã làm tất cả công việc bẩn thỉu đằng sau hậu trường. Lời khuyên tốt nhất là tham khảo tài liệu trên Sourceforge , nhưng đó là một bình luận không phải là một câu trả lời, và những đề xuất của bạn phần lớn phản ánh những gì tôi tìm thấy trên đó. Tôi thậm chí còn không nhớ 7-zip có người thực thi dòng lệnh haha.
davidjmcclelland
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.