Batch repacking lưu trữ vào 7z với các cài đặt tùy chỉnh


1

Tôi đang làm việc về lưu trữ và nén rất nhiều yếu tố thiết kế và chúng được trộn lẫn trong các tệp .zip và .rar.

Sau khi mày mò và thử nghiệm, các cài đặt này dường như mang lại kết quả tốt nhất cho tôi:

enter image description here

Tôi đang theo dõi đoạn mã đẹp này được đăng trong câu hỏi này và tôi đang cố gắng sửa đổi nó để có các cài đặt tôi muốn.

Tuy nhiên, .bat sẽ không chạy.

Đây là mã tôi có:

for %%F in (*.rar) do ( "C:\Program Files\7-Zip\7z.exe" x -y -o"%%F_tmp" "%%F" * & pushd %%F_tmp & "C:\Program Files\7-Zip\7z.exe" a -y -r -t7z -m0=lzma2 -mx=9 -mfb=128 -md=512m -mmt:on ..\"%%~nF".7z * & popd & rmdir /s /q "%%F_tmp" )

Ngoài ra, có cách nào để chạy cái này trên cả HAI .zip và .rar ngoài cùng .bat không? Hiện tại tôi có 2 phiên bản.


1
Có lý do để nhồi nhét nó vào một dòng? Điều gì không làm việc? Để xử lý cả hai loại tệp - & gt; for %%F in (*.rar *.zip) do ...
LotPings

Tệp bó hoạt động tốt với tôi, ngay cả trong một dòng, nhưng tôi nhận được System error: The parameter is incorrect trên lệnh 7zip thứ hai.
Worthwelle

@LotPings Tôi chưa quen với kịch bản dòng lệnh và tôi không biết phải quay về đâu.
Ovaryraptor

Câu trả lời:


2

Các -mnt:on tùy chọn đơn giản là sai, ít nhất là với 7-Zip 18.05 (x64)

Lô này:

:: Q:\Test\2018\10\11\SU_1365974.cmd
@Echo off
Set  z7="C:\Program Files\7-Zip\7z.exe"
Set "z7o=a -y -r -t7z -m0=lzma2 -mx=9 -mfb=128 -md=512m "

for %%F in (*.rar *.zip) do ( 
  %z7% x -y -o"%%F_tmp" "%%F" *
  pushd %%F_tmp
  %z7% %z7o% ..\"%%~nF".7z * ||(pause)
  popd 
  rmdir /s /q "%%F_tmp"
  Rem del "%%F"
)

(xóa Rem ở phía trước del để xóa tệp lưu trữ gốc)
Tạo ra các kết quả này trên các tệp zip mẫu chủ yếu từ cài đặt arduino.

> dir
 Datenträger in Laufwerk A: ist RamDisk
 Verzeichnis von A:\

2018-10-11  20:22    533.163            1802-064.7z
2018-01-27  15:38               535.890 1802-064.zip

2018-10-11  20:22    265.703            Adafruit_Circuit_Playground-1.6.9.7z
2017-10-21  18:06               408.442 Adafruit_Circuit_Playground-1.6.9.zip

2018-10-11  20:22    294.031            Adafruit_Circuit_Playground-1.8.0.7z
2018-03-09  19:39               472.998 Adafruit_Circuit_Playground-1.8.0.zip

2018-10-11  20:22     24.213            Adafruit_NeoPixel-1.1.3.7z
2017-11-30  20:26                36.399 Adafruit_NeoPixel-1.1.3.zip

2018-10-11  20:22     27.574            Adafruit_NeoPixel-1.1.6.7z
2018-03-09  19:39                40.682 Adafruit_NeoPixel-1.1.6.zip

2018-10-11  20:22     18.280            APA102-2.0.0.7z
2017-09-09  14:30                25.694 APA102-2.0.0.zip

2018-10-11  20:22        794            archive.7z
2018-09-24  14:13                 1.582 archive.zip

2018-10-11  20:22    128.390            ArduinoJson-5.13.1.7z
2018-03-09  19:40               242.718 ArduinoJson-5.13.1.zip

2018-10-11  20:22     17.001            AS_BH1750-master.7z
2017-12-15  15:17                31.034 AS_BH1750-master.zip

2018-10-11  20:22    489.473            avrdude-6.3.0-arduino9-i686-w64-mingw32.7z
2017-11-23  20:43               645.974 avrdude-6.3.0-arduino9-i686-w64-mingw32.zip

2018-10-11  20:22     31.008            Bridge-1.7.0.7z
2018-01-05  22:14                61.431 Bridge-1.7.0.zip

2018-10-11  20:22     14.761            DallasTemperature-3.7.6.7z
2017-09-09  14:30                27.378 DallasTemperature-3.7.6.zip

2018-10-11  20:22     14.811            DallasTemperature-3.8.0.7z
2018-03-09  19:40                27.988 DallasTemperature-3.8.0.zip
                   =========  =========
                        .7z        .zip
Cumulated size:    1.859.202  2.558.210
percent of the other     73%       138%

Mmt: bật là để cho phép đa luồng. Hoặc có cách nào khác để chỉ định sử dụng lõi 8/4 không?
Ovaryraptor

Nếu tôi đọc đúng sự giúp đỡ -mmt[N] : set number of CPU threads, sử dụng đúng là -mnt8 tương tự như -mx9 trong lựa chọn của bạn.
LotPings

Vì vậy, trên mx9 nó đã được sử dụng các chủ đề tối đa?
Ovaryraptor

Không có cú pháp -mx[N] : set compression level: -mx1 (fastest) ... -mx9 (ultra) cho thấy [n] phải được thay thế bằng số mong muốn. Làm thế nào các chủ đề CPU liên quan đến lõi / ái lực là một câu hỏi khác nhau.
LotPings
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.