7zip - Erstellen Sie ein selbstextrahierendes Archiv (sfx) mit dem angegebenen Extraktionspfad

15

Hallo SuperUser-Experten,

Vielen Dank für Ihre Hilfe im fortgeschrittenen. Ich versuche, das 7zip SFX-Archiv dazu zu bringen, eine ausführbare Datei zu erstellen. Ich kann die ausführbare Datei erhalten. Aber wenn ich es starte, gibt es den Download-Pfad für Extract to:. Ich möchte %AppData%\Roamingstandardmäßig wechseln . Der folgende Screenshot gibt eine Vorstellung davon, was ich versuche zu tun.

7zip Einstellungen

Extrahieren nach: Dialogfeld

Es gibt keine setup.exe oder irgendetwas im Archiv, es gibt nur wenige Dateien, die in den RoamingOrdner verschoben werden müssen . Dies gilt für viele unserer Benutzer, die diese Updates erhalten können, ohne dass sie einen Pfad angeben. (Es ist immer einfach, wenn Benutzer keinen Pfad angeben müssen, andernfalls habe ich die Erfahrung gemacht, dass die Benutzer die ungewöhnlichsten Pfade auswählen können !!)

Vielen Dank.

Aktualisieren

Folgendes habe ich bisher versucht. Der Inhalt meiner Konfigurationsdatei ist

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

Dies ist der Befehlszeilenaufruf.

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

Leider funktioniert es nicht . Es gibt den folgenden Weg. Es sollte sein %AppData%\\Roaming\\Notepad++.

[Pfad extrahieren]

Gifcrazy
quelle
Diese Option ist mit WinRAR verfügbar, kennt sich jedoch nicht mit 7-zip aus.
Wurzel nicht hier plz ...

Antworten:

7

Probieren Sie 7z SFX Builder aus , es ist kostenlos, unterstützt Befehlszeilenparameter und Sie können den Extraktionspfad auf der Hauptregisterkarte der GUI angeben :

Hauptregisterkarte

Omegastripes
quelle
Omegastripes, es funktioniert super. Vielen Dank. Es hat eine erstaunliche Menge an Optionen. Vielen Dank.
Gifcrazy
McAfee löscht die Exe nach der Installation wegen eines Trojanischen Pferdes ...
Lieven Cardoen
8

Ich möchte den Extraktpfad %AppData%\Roamingstandardmäßig ändern .

Sie müssen ein "modifiziertes Modul" von 7z SFX Builder (sourceforge) herunterladen .

Überprüfen Sie die Links auf der linken Seite auf Dokumentation (beachten Sie diese Links und der folgende Text stammt von https://web.archive.org/ )

In Ihrer Konfigurationsdatei:

InstallPath="%AppData%\Roaming"

Parameter der Konfigurationsdatei

InstallPath = "path_to_extract"

Legt den Extraktionspfad fest. Der Extraktionsordner wird nach der Extraktion nicht gelöscht.

Wenn der InstallPathWert nicht in der Konfigurationsdatei vorhanden ist oder der Pfad aus dem interaktiven Extraktionsdialog gelöscht wurde, wird das Archiv in einen temporären Ordner extrahiert. Dieser temporäre Ordner wird nach dem Extrahieren und Ausführen aller Befehle gelöscht.

Umgebungsvariablen sind zulässig (mit Ausnahme von %%Tund Variablen, die in definiert sind SetEnvironment, wenn %%Tsie in einer von ihnen verwendet werden). Sie MÜSSEN DOPPELTE Backslashes in Pfaden verwenden. Zum Beispiel:

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

oder

InstallPath="%PROGRAMFILES%\\test"

Relative Pfade sind erlaubt. Der aktuelle Ordner ist derjenige, aus dem das Programm ausgeführt wurde, das das SFX-Archiv startet. Zum Beispiel,

InstallPath="test"

Erstellt einen Ordner mit dem Namen "test" in dem Ordner, aus dem das Programm ausgeführt wurde, das das SFX-Archiv startet. Alle Dateien werden in den Ordner "test" extrahiert. Auf der anderen Seite,

InstallPath="."

extrahiert den Archivinhalt in den Ordner, aus dem das Programm ausgeführt wurde, das das SFX-Archiv startet. Ebenfalls,

InstallPath="%%S"

extrahiert den Archivinhalt in den Ordner, in dem sich die SFX befindet.

Wenn Sie lediglich den Archivinhalt in einen bestimmten Ordner extrahieren müssen, müssen Sie InstallPathin der Konfigurationsdatei einen Wert für angeben .

In diesem Fall sollten Sie nicht RunProgramoder ExecuteFilein der Konfigurationsdatei angeben . AutoInstalloder AutoInstallXkann in der Konfigurationsdatei angegeben werden, sollte jedoch nicht über die Befehlszeile oder mit der Taste [UMSCHALT] aufgerufen werden.

Wenn Sie angeben , RunProgramoder ExecuteFileoder aufrufen AutoInstallund AutoInstallXwird die angegebene ausführbare Datei nach der Extraktion gestartet werden.

Quelle Konfigurationsdatei Parameter

DavidPostill
quelle
Danke David. Aber können Sie mir sagen, wie man die Konfigurationsdatei verwendet?
Gifcrazy
@Cricrazy Siehe Allgemeine Informationen zu dem geänderten Modul, das Sie herunterladen müssen, und überprüfen Sie die Links auf der linken Seite. Antwort aktualisiert.
DavidPostill
Diese 7-Zip-Konfigurationseinstellung InstallPathist genau das, wonach ich suche. Im Moment muss ich eine Batch-Datei erstellen, um Dateien aus dem temporären Extraktionsordner in den Laufzeitordner unserer Anwendung zu kopieren: ;!@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 Der Link funktioniert jedoch nicht mehr.
Papierband
Mini-Markdown kann den Codeblock nicht richtig formatieren. Bitte ändern Sie, wenn Sie wissen, wie. Vielen Dank.
Papierband
@papertape Neuer Link ist sourceforge.net/projects/s-zipsfxbuilder
DavidPostill
0

Verwenden Sie einfach -y -o<PathToExtract>:Setup.exe -y -oc:\abc

user703610
quelle
2
Kannst du ein Beispiel geben? was ist zB und -oc?
Gifcrazy
1
"eg" steht für "expempli gratia", was im Grunde "zum Beispiel" bedeutet. Es wird häufig verwendet, um ein Beispiel anzugeben, genau wie Sie es anfordern. Die Antwort ist noch unerklärlich und könnte formatiert werden, enthält jedoch ein vollständiges Beispiel.
music2myear
Können Sie den Befehl näher erläutern? Sie sollten immer eine Aufschlüsselung der Aufgaben geben, da der Benutzer am anderen Ende vorsichtig mit Befehlen mit Funktionen sein wird, die er nicht kennt.
Service Manager
Befehlszeilenparameter werden an die enthaltene Exe übergeben.
Kazark