2013-07-16 34 views
20

Ruby Devkit là một kho lưu trữ tự giải nén dựa trên 7 zip.Làm cách nào để cài đặt tự động bản lưu trữ tự giải nén 7-zip vào một thư mục cụ thể?

Tôi muốn gọi nó một cách im lặng mà không phải cài đặt 7-Zip để giải nén tệp vào thư mục mà tôi chọn, để tôi có thể tập lệnh cài đặt. Tôi hình dung nó giống như sau:

cmd> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe /silent /dir="C:\DevKit" 

Nhưng điều đó, tất nhiên, không hiệu quả. Tôi phải sử dụng cờ dòng lệnh nào để tự động trích xuất lưu trữ này vào thư mục mà tôi chọn?

Trả lời

26

thử điều này:

C:\> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe -o"C:\DevKit" -y 
+0

BTW, nếu bạn muốn trích xuất vào thư mục làm việc hiện tại của mình, trong đối số o vượt qua ". \ DevKit" – BuvinJ

+0

Có cách nào để đợi quá trình trích xuất hoàn tất không? Ngay sau khi hộp thoại tiến trình xuất hiện lệnh thoát. –

+3

@TasosLaskos, chỉ cần đặt 'start/b/wait' trước lệnh – Kevin

12

Update 2017: Các công cụ từ 7zsfx.info tại là chết và biến mất.


gốc, bài cũ 08-2015:

Nếu bạn đang cố gắng để trích xuất một 7zip SFX (http://7zsfx.info/) lưu trữ:

sfx.exe -y -gm2 -InstallPath="C:\\your\\target\\path"

Switches Docu

  • -y ẩn một số nhắc nhở
  • -gm2 ẩn thoại hoàn toàn chiết xuất (chế độ im lặng)
  • -InstallPath đặt đường dẫn đích (bạn cần backslashes đôi)

7z SFX Hướng dẫn

Các cách chính thức để tạo gói SFX là sử dụng -sfx[{name}] : Create SFX archive.

Và đó có nghĩa là các gói SFX tạo sử dụng hai loại tùy chọn CLI:

tùy chọn CLI
  1. chính thức từ 7zSFX, và
  2. sự đi qua tùy chọn bạn đã cấu hình trong cấu hình của bạn, trước khi tạo các gói.

    Bạn có thể coi đó là chuyển tiếp tham số đến tệp thực thi được đóng gói. Chuyển tiếp tham số này phụ thuộc vào cấu hình SetEnvironmentRunProgramm!

Quá trình đầy đủ:

  1. Tạo tệp lưu trữ Package.7z:
    • chứa Installer.msi và bổ sung crap.cab tập tin.
  2. Tạo cấu hình tập tin config.txt:

    ;[email protected]@!UTF-8! 
    Title="Installation" 
    SetEnvironment="strInstall=hidcon:Installer.msi /qn" 
    RunProgram="%strInstall%" 
    ;[email protected]@! 
    
  3. Bây giờ chúng ta tạo ra bằng cách kết hợp Test.exe SFX + cấu hình + lưu trữ vào một file thực thi.

    copy /b 7zS.sfx + config.txt + Package.7z SfxInstaller.exe

    Lưu ý: 7zS.sfx là từ 7zip gói thêm chính thức.

  4. Bây giờ, khi bạn chạy SfxInstaller.exe, bạn có thể chuyển cho ví dụ /lv InstallerLog.txt để tạo nhật ký cài đặt, ví dụ:

    SfxInstaller.exe /lv InstallerLog.txt

+0

-gm2 không hoạt động – thang

+0

Vâng, có nhiều trình tạo SFX 7zip xung quanh. Mỗi người trong số họ với một chút tùy chọn CLI khác nhau. - Các công cụ tôi tham chiếu (7zip SFX (http://7zsfx.info/)) là trong khi đó chết và đi ... tôi sẽ cập nhật các bài viết. –

+0

thường những điều này cung cấp cho bạn các dòng lệnh nếu bạn chạy với/h (như điều msi), nhưng 7 zip không làm điều đó. Đó là một chút phiền toái. – thang

1

Từ 7-zip được sử dụng, chỉ cần tạo một kho lưu trữ self-extracting trong .exe. và chạy nó với công tắc -o và -y.

Tôi sử dụng nó để tiết kiệm dung lượng trên ổ USB. Ví dụ, tôi thường xuyên chạy ứng dụng VDiskAir. Tôi tạo ra một kho lưu trữ self-extracting của chương trình thư mục VDiskAir (khoảng 15MB):

7z a -SFX -mx9 VDiskAir.exe [VDiskAir folder path] 

NB: -mx9 được sử dụng ở đây để tối đa hóa nén.

tôi tạo ra một BAT DOS để chạy self-extracting VDiskAir.exe (khoảng 5MB) tạo ra, lưu nó như VDiskAir.bat chứa:

VDiskAir.exe -o%TMP% -y 

%TMP%\VDiskAir\VDisk_Air.exe 

Tôi không lo lắng rằng các thư mục VDiskAir (trong % TMP% được trích xuất bằng các tệp chương trình VDiskAir) không bị xóa sau khi chạy VDiskAir theo cách này, vì tôi có tập lệnh BAT để xóa% TMP% khi tắt/khởi động.

+0

Xin lỗi, hai dòng xuất hiện trên một dòng, chúng phải là: –