7zip - Utwórz samorozpakowujące się archiwum (sfx) z określoną ścieżką wyodrębniania

15

Witajcie eksperci SuperUser,

Dziękujemy za pomoc w zaawansowanych. Usiłuję uzyskać archiwum 7zip SFX, aby utworzyć plik wykonywalny. Jestem w stanie uzyskać plik wykonywalny. Ale kiedy go uruchamiam, podaje ścieżkę pobierania Extract to:. Chciałbym zmienić %AppData%\Roamingdomyślnie na. Zrzut ekranu poniżej daje wyobrażenie o tym, co próbuję zrobić.

Ustawienia 7zip

Wyodrębnij do: okno dialogowe

W archiwum nie ma pliku setup.exe ani nic, zawiera tylko kilka plików, które muszą przejść do Roamingfolderu. To jest dla wielu naszych użytkowników, którzy mogą uzyskać te aktualizacje bez określania ścieżki. (Zawsze jest łatwo, gdy użytkownicy nie muszą określać ścieżki, w przeciwnym razie z moich doświadczeń wynika, że ​​użytkownicy mogą wybierać najbardziej nietypowe ścieżki !!)

Dziękuję Ci.

Aktualizacja

Oto, co próbowałem do tej pory. moja zawartość pliku konfiguracyjnego to

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

To jest wywołanie z wiersza poleceń.

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

Niestety to nie działa . Daje następującą ścieżkę. Powinno być %AppData%\\Roaming\\Notepad++.

[Wyodrębnij ścieżkę]

Gifcrazy
źródło
Ta opcja jest dostępna w WinRAR, ale nie wiem o 7-zip.
Nie rootuj tutaj, proszę ...

Odpowiedzi:

7

Wypróbuj 7z SFX Builder , jest darmowy, obsługuje parametry wiersza poleceń, a także możesz określić ścieżkę ekstrakcji na głównej karcie GUI :

Karta główna

omegastripes
źródło
omegastripes, działa świetnie. Dziękuję Ci. Ma niesamowitą liczbę opcji. Wielkie dzięki.
Gifcrazy
McAfee usuwa exe po instalacji z powodu konia trojańskiego ...
Lieven Cardoen
8

Chciałbym %AppData%\Roamingdomyślnie zmienić ścieżkę wyodrębniania .

Musisz pobrać „zmodyfikowany moduł” z 7z SFX Builder (sourceforge).

Sprawdź linki po lewej dla dokumentacji (zwróć uwagę na te linki, a poniższy tekst pochodzi z https://web.archive.org/ )

W twoim pliku konfiguracyjnym:

InstallPath="%AppData%\Roaming"

Parametry pliku konfiguracyjnego

InstallPath = "path_to_extract"

Ustawia ścieżkę ekstrakcji. Folder rozpakowywania nie zostanie usunięty po rozpakowaniu.

Jeśli InstallPathwartość nie występuje w pliku konfiguracyjnym lub ścieżka została usunięta z interaktywnego okna dialogowego wyodrębniania, archiwum zostanie wyodrębnione do folderu tymczasowego. Ten folder tymczasowy zostanie usunięty po rozpakowaniu i wykonaniu wszystkich poleceń.

Zmienne środowiskowe są dozwolone (z wyjątkiem %%Tzmiennych zdefiniowanych w SetEnvironment, jeśli %%Tsą używane w dowolnej z nich). MUSISZ używać PODWÓJNYCH odwrotnych ukośników na ścieżkach. Na przykład:

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

lub

InstallPath="%PROGRAMFILES%\\test"

Ścieżki względne są dozwolone. Bieżący folder to ten, z którego uruchomiono program uruchamiający archiwum SFX. Na przykład,

InstallPath="test"

tworzy folder o nazwie „test” w folderze, z którego uruchomiono program uruchamiający archiwum SFX. Wszystkie pliki zostaną wyodrębnione do folderu „test”. Z drugiej strony,

InstallPath="."

wypakowuje zawartość archiwum do folderu, z którego uruchomiono program uruchamiający archiwum SFX. Również,

InstallPath="%%S"

wypakowuje zawartość archiwum do folderu, w którym znajduje się SFX.

Jeśli wszystko, czego potrzebujesz, to wyodrębnić zawartość archiwum do określonego folderu, musisz podać wartość dla InstallPathpliku konfiguracyjnego.

W takim przypadku nie należy określać RunProgramani ExecuteFilew pliku konfiguracyjnym. AutoInstalllub AutoInstallXmoże być określony w pliku konfiguracyjnym, ale nie należy go wywoływać za pomocą wiersza poleceń lub klawisza [SHIFT].

Jeśli określisz RunProgramlub ExecuteFilewywołasz AutoInstalli AutoInstallX, określony plik wykonywalny zostanie uruchomiony po rozpakowaniu.

Parametry pliku konfiguracji źródła

DavidPostill
źródło
Dzięki David. Ale czy możesz mi powiedzieć, jak korzystać z pliku konfiguracyjnego?
Gifcrazy,
@Cricrazy Zobacz Informacje ogólne o zmodyfikowanym module, który musisz pobrać, i sprawdź łącza po lewej stronie. Odpowiedź zaktualizowana.
DavidPostill
To ustawienie konfiguracji 7-Zip InstallPathjest właśnie tym, czego szukam. Na chwilę muszę utworzyć plik wsadowy, aby skopiować pliki z folderu do folderu tymczasowego ekstrakcji czasu prowadzimy nasze aplikacji: ;!@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 Jednak odwołuje się już nie działa.
papertape,
Nie można uzyskać mini-Markdown do prawidłowego sformatowania bloku kodu. Proszę poprawić, jeśli wiesz jak. Dzięki.
papertape,
@papertape Nowy link to sourceforge.net/projects/s-zipsfxbuilder
DavidPostill
0

Po prostu użyj -y -o<PathToExtract>:Setup.exe -y -oc:\abc

użytkownik703610
źródło
2
czy możesz podać przykład? co to jest np. i -oc?
Gifcrazy,
1
„eg” oznacza „expempli gratia”, co w zasadzie oznacza „na przykład”. Jest powszechnie używany do wskazania przykładu, tak jak prosisz. Odpowiedź wciąż nie zawiera wyjaśnień i mogłaby korzystać z formatowania, ale zawiera pełny przykład.
music2myear
Jeśli potrafisz opracować polecenie? Zawsze powinieneś podawać podział na to, co będą robić polecenia, ponieważ użytkownik na drugim końcu będzie ostrożny wobec poleceń z funkcjami, których nie znają.
Service Manager
Parametry wiersza polecenia są przekazywane do zawartego pliku Exe.
Kazark,