7zip - สร้างไฟล์เก็บถาวรแบบขยายตัวเอง (sfx) ด้วยเส้นทางแยกที่ระบุ


15

สวัสดีผู้เชี่ยวชาญผู้ใช้

ขอบคุณสำหรับความช่วยเหลือในขั้นสูง ฉันพยายามรับไฟล์เก็บถาวร 7zip SFX เพื่อสร้างไฟล์เรียกทำงาน ฉันสามารถเรียกใช้งานได้ Extract to:แต่เมื่อฉันใช้มันให้ดาวน์โหลดสำหรับเส้นทาง ฉันต้องการเปลี่ยนเป็น%AppData%\Roamingค่าเริ่มต้น ภาพหน้าจอด้านล่างจะให้ข้อมูลเกี่ยวกับสิ่งที่ฉันพยายามทำ

การตั้งค่า 7zip

แยกไปที่: กล่องโต้ตอบ

ไม่มีไฟล์ setup.exe หรืออะไรในไฟล์เก็บถาวรมันมีไฟล์เพียงไม่กี่ไฟล์ที่ต้องไปที่Roamingโฟลเดอร์ นี่คือสำหรับผู้ใช้ของเราหลายคนที่สามารถรับอัปเดตนี้โดยที่พวกเขาไม่ได้ระบุเส้นทาง (มันเป็นเรื่องง่ายเสมอเมื่อผู้ใช้ไม่ต้องระบุเส้นทางมิฉะนั้นเป็นประสบการณ์ของฉันที่ผู้ใช้สามารถเลือกเส้นทางที่ผิดปกติมากที่สุด !!)

ขอบคุณ.

ปรับปรุง

นี่คือสิ่งที่ฉันได้ลองมาแล้ว เนื้อหาไฟล์ปรับแต่งของฉันคือ

;!@Install@!UTF-8!
InstallPath="%AppData%\\Roaming\\Notepad++"
;!@InstallEnd@!

นี่คือการเรียกบรรทัดคำสั่ง

copy /b 7zS.sfx + config.txt + Installer.7z myinstaller.exe

แต่น่าเสียดายที่มันไม่ทำงาน มันให้เส้นทางต่อไปนี้ %AppData%\\Roaming\\Notepad++มันควรจะเป็น

[แยกเส้นทาง]


ตัวเลือกนี้สามารถใช้ได้กับ WinRAR แต่ไม่รู้เกี่ยวกับ 7-zip
ไม่ต้องรูทที่นี่ ...

คำตอบ:


7

ลองใช้7z SFX Builderฟรีสนับสนุนพารามิเตอร์บรรทัดคำสั่งและคุณสามารถระบุเส้นทางการแยกบนแท็บ GUI หลัก :

แท็บหลัก


omegastripes มันใช้งานได้ดี ขอบคุณ. มันมีตัวเลือกที่น่าทึ่งมากมาย ขอบคุณมาก.
Gifcrazy

McAfee ลบ exe หลังจากการติดตั้งเพราะม้าโทรจัน ...
Lieven Cardoen

8

ฉันต้องการเปลี่ยนเส้นทางการแยกเป็น%AppData%\Roamingค่าเริ่มต้น

คุณต้องดาวน์โหลด "โมดูลที่ถูกดัดแปลง" จาก7z SFX Builder (sourceforge)

ตรวจสอบลิงก์ด้านซ้ายเพื่อดูเอกสาร (โปรดทราบลิงก์เหล่านี้และข้อความด้านล่างนี้มาจากhttps://web.archive.org/ )

ในไฟล์กำหนดค่าของคุณ:

InstallPath="%AppData%\Roaming"

พารามิเตอร์ไฟล์การกำหนดค่า

InstallPath = "path_to_extract"

กำหนดเส้นทางการแยก โฟลเดอร์การแยกจะไม่ถูกลบหลังจากการแยก

หากInstallPathค่านั้นไม่มีอยู่ในไฟล์กำหนดค่าหรือพา ธ ถูกลบออกจากกล่องโต้ตอบการแยกข้อมูลแบบโต้ตอบไฟล์เก็บถาวรจะถูกแตกไปยังโฟลเดอร์ชั่วคราว โฟลเดอร์ชั่วคราวนี้จะถูกลบหลังจากการแยกและการดำเนินการตามคำสั่งทั้งหมด

อนุญาตให้ใช้ตัวแปรสภาพแวดล้อม (ยกเว้น%%Tและตัวแปรที่กำหนดไว้SetEnvironmentหาก%%Tใช้ในตัวแปรใด ๆ ) คุณต้องใช้แบ็กสแลชคู่ในเส้นทาง ตัวอย่างเช่น:

InstallPath="C:\\Windows\\system32\\test"

หรือ

InstallPath="%PROGRAMFILES%\\test"

อนุญาตให้ใช้เส้นทางสัมพัทธ์ โฟลเดอร์ปัจจุบันคือโฟลเดอร์ที่โปรแกรมเรียกใช้งานการเก็บถาวร SFX ตัวอย่างเช่น,

InstallPath="test"

สร้างโฟลเดอร์ที่มีชื่อ "test" ในโฟลเดอร์ที่โปรแกรมเรียกใช้งาน SFX archive ถูกเรียกใช้งาน ไฟล์ทั้งหมดจะถูกแตกไปยังโฟลเดอร์ "test" ในทางกลับกัน,

InstallPath="."

แตกเนื้อหาเก็บถาวรไปยังโฟลเดอร์ที่โปรแกรมเรียกใช้งาน SFX archive ถูกดำเนินการ นอกจากนี้

InstallPath="%%S"

แตกเนื้อหาเก็บถาวรไปยังโฟลเดอร์ที่มี SFX อยู่

หากทั้งหมดที่คุณต้องการคือการแยกเนื้อหาที่เก็บถาวรไปยังโฟลเดอร์ที่แน่นอนคุณจะต้องระบุค่าสำหรับInstallPathในไฟล์กำหนดค่า

ในกรณีนี้คุณไม่ควรระบุRunProgramหรือExecuteFileในไฟล์ปรับแต่ง AutoInstallหรือAutoInstallXอาจระบุไว้ในไฟล์ปรับแต่ง แต่ไม่ควรเรียกใช้ผ่านบรรทัดคำสั่งหรือด้วยปุ่ม [SHIFT]

หากคุณระบุRunProgramหรือExecuteFileหรือเรียกใช้AutoInstallและAutoInstallXปฏิบัติการที่ระบุจะเปิดตัวหลังจากการแยก

พารามิเตอร์ไฟล์การกำหนดค่าซอร์ส


ขอบคุณเดวิด แต่คุณสามารถบอกวิธีใช้ไฟล์การกำหนดค่าได้ไหม
Gifcrazy

@Cricrazy ดูข้อมูลทั่วไปเกี่ยวกับโมดูลที่ได้รับการดัดแปลงซึ่งคุณต้องดาวน์โหลดและตรวจสอบลิงค์ทางด้านซ้าย อัปเดตคำตอบแล้ว
DavidPostill

การตั้งค่าการกำหนดค่า 7-Zip InstallPathนี้เป็นเพียงสิ่งที่ฉันกำลังมองหา ในขณะนี้ฉันต้องสร้างไฟล์แบตช์เพื่อคัดลอกไฟล์จากโฟลเดอร์การแยกชั่วคราวไปยังโฟลเดอร์เวลาทำงานของแอปพลิเคชันของเรา: ;!@Install@!UTF-8! Title="Local Manager" InstallPath="C:\kiosk\update" RunProgram="7zbootstrap.bat" ;!@InstallEnd@! @ECHO OFF REM 7zbootstrap.bat SETLOCAL SET update=C:\Kiosk\update XCOPY *.* %update%\ /S /E /I /F /Y CD %update% ECHO LAUNCHING AUTOUPDATE.BAT SCRIPT TIMEOUT /T 5 /NOBREAK autoUpdate.bat อย่างไรก็ตามลิงก์ไม่ทำงานอีกต่อไป
papertape

ไม่สามารถรับ mini-Markdown เพื่อจัดรูปแบบการบล็อกรหัสอย่างถูกต้อง โปรดแก้ไขหากคุณรู้วิธี ขอบคุณ
papertape

@papertape ลิงก์ใหม่คือsourceforge.net/projects/s-zipsfxbuilder
DavidPostill

0

เพียงใช้-y -o<PathToExtract>:Setup.exe -y -oc:\abc


2
คุณยกตัวอย่างได้ไหม เช่นและ -oc คืออะไร?
Gifcrazy

1
"eg" หมายถึง "expempli gratia" ซึ่งโดยทั่วไปหมายถึง "ตัวอย่าง" โดยทั่วไปจะใช้เพื่อระบุตัวอย่างเช่นเดียวกับที่คุณร้องขอ คำตอบยังคงเปลือยคำอธิบายและสามารถใช้การจัดรูปแบบ แต่มันรวมถึงตัวอย่างเต็มรูปแบบ
music2myear

หากคุณสามารถทำอย่างละเอียดในคำสั่ง? คุณควรแยกย่อยคำสั่งที่จะทำอยู่เสมอในขณะที่ผู้ใช้ในส่วนอื่น ๆ จะระวังคำสั่งที่มีฟังก์ชั่นที่พวกเขาไม่รู้
ผู้จัดการฝ่ายบริการ

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