Làm cách nào để cập nhật nhiều tệp nén với dòng lệnh 7zip?


2

Tôi cần cập nhật tệp "background.png" thành hàng trăm tệp .zip trong cùng thư mục. Tôi đã thử lệnh sau mà không thành công:

7z u -r "C:\Users\xxx\Desktop\testzip\*.zip" "C:\Users\xxx\Desktop\testzip\background.png"

Tôi nhận được lỗi "không thể mở tập tin". Có khả năng làm việc đó không?


Cảm ơn ý kiến ​​của bạn và đừng lo lắng, tôi sẽ theo kịp cho đến khi điều này kết thúc. Vấn đề duy nhất là tôi ở múi giờ khác, tôi cũng không quen thuộc với nghi thức trong siêu người dùng và có vẻ như tôi vẫn cần kiếm một số đặc quyền như gắn cờ người dùng khác.
suciocerdo

Câu trả lời:


0

Thêm một tệp cụ thể vào mỗi tệp zip theo cách đệ quy với 7-Zip

Sử dụng một Cho / F vòng lặp và Chỉ đạo sử dụng lệnh /S /B /A-D chuyển sang lần lượt qua từng tệp zip một lần lượt từ thư mục bắt đầu xuống và cập nhật từng tệp lưu trữ theo cách này.

Chú thích: Với phương pháp này, bạn sẽ bỏ qua và không sử dụng 7-Zip -r chuyển đổi với tham số cập nhật.


Dòng lệnh

FOR /F "TOKENS=*" %A in ('DIR /S /B /A-D "C:\Users\xxx\Desktop\testzip\*.zip"') DO 7z u "%~fA" "C:\Users\xxx\Desktop\testzip\background.png"

Tập lệnh hàng loạt

Chú thích: Bạn có thể đặt giá trị của SET Src= biến là thư mục bắt đầu đường dẫn đầy đủ mà bạn muốn cập nhật tệp zip trong đệ quy. Bạn có thể đặt SET uFile= giá trị biến là đường dẫn đầy đủ của tệp bạn đang cập nhật tệp zip; các tập tin cập nhật.

@ECHO ON

SET Src=C:\Users\xxx\Desktop\testzip
SET uFile=C:\Users\xxx\Desktop\testzip\background.png

FOR /F "TOKENS=*" %%A in ('DIR /S /B /A-D "%Src%\*.zip"') DO (
    7z u "%%~fA" "%uFile%"
)

Tài nguyên khác

  • Cho / F
  • FOR /?

        tokens=x,y,m-n  - specifies which tokens from each line are to
                          be passed to the for body for each iteration.
                          This will cause additional variable names to
                          be allocated.  The m-n form is a range,
                          specifying the mth through the nth tokens.  If
                          the last character in the tokens= string is an
                          asterisk, then an additional variable is
                          allocated and receives the remaining text on
                          the line after the last token parsed.
    

    Ngoài ra, thay thế các tham chiếu biến FOR đã được   tăng cường. Bây giờ bạn có thể sử dụng cú pháp tùy chọn sau:

    %~fI        - expands %I to a fully qualified path name
    
  • Chỉ đạo

  • -u (Tùy chọn cập nhật)

Tại sao tiếng vang BẬT?
Ultrasonic54321

Sở thích cá nhân ... và vì tôi tuyệt vời !!! LOL
Pimp Juice IT

Cảm ơn rất nhiều cho kịch bản. Tôi chạy một số thử nghiệm và nó không cập nhật nội dung của các tệp zip và lô đóng lại nhanh để xem kết quả. Có cách nào để ngăn cửa sổ lệnh đóng không? Nhân tiện, các tệp zip không chứa bất kỳ thư mục / thư mục con nào, chỉ các tệp.
suciocerdo

cập nhật: Tôi chạy một số thử nghiệm bổ sung và tôi nhận thấy rằng trên thực tế, lô đang thêm nền.png vào tệp zip nhưng không cập nhật chúng nếu nó đã tồn tại.
suciocerdo

@PimpJuiceIT Tôi có cùng phiên bản 7-zip 18.01 (x64). Tôi đang chạy đợt với tư cách quản trị viên từ thư mục 7zip và tôi nhận được kết quả sau: Cập nhật kho lưu trữ: C: \ Users \ xxx \ Desktop \ testzip \ archive 1.zip Giữ dữ liệu cũ trong kho lưu trữ: 1 thư mục, 3 tệp, 39664 byte (39 KiB) Thêm dữ liệu mới vào kho lưu trữ: 0 tệp, 0 byte Tệp đọc từ đĩa: 0 Kích thước lưu trữ: 12324 byte (13 KiB) Mọi thứ đều ổn
suciocerdo
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.