![7zip - Erstellen Sie ein selbstextrahierendes Archiv (sfx) mit angegebenem Extraktionspfad](https://rvso.com/image/1493932/7zip%20-%20Erstellen%20Sie%20ein%20selbstextrahierendes%20Archiv%20(sfx)%20mit%20angegebenem%20Extraktionspfad.png)
Ich versuche, aus dem 7zip SFX-Archiv eine ausführbare Datei zu erstellen. Ich kann die ausführbare Datei abrufen. Aber wenn ich sie ausführe, wird der Downloadpfad für angezeigt Extract to:
. Ich möchte dies %AppData%\Roaming
standardmäßig ändern. Der Screenshot unten gibt eine Vorstellung davon, was ich versuche.
setup.exe
Im Archiv ist nichts oder nichts, es hat nur ein paar Dateien, die in Roaming
den Ordner verschoben werden müssen. Dies ist für viele unserer Benutzer, die diese Updates erhalten können, ohne einen Pfad angeben zu müssen. (Es ist immer einfacher, wenn Benutzer keinen Pfad angeben müssen, ansonsten ist es meine Erfahrung, dass die Benutzer die ungewöhnlichsten Pfade auswählen können!!)
Aktualisieren
Hier ist, was ich bisher versucht habe. Der Inhalt meiner Konfigurationsdatei ist
;!@Install@!UTF-8!
InstallPath="%AppData%\\Roaming\\Notepad++"
;!@InstallEnd@!
Dies ist der Kommandozeilenaufruf.
copy /b 7zS.sfx + config.txt + Installer.7z myinstaller.exe
geht leider nicht. Es ergibt sich der folgende Pfad. Es sollte sein %AppData%\\Roaming\\Notepad++
.
Antwort1
Versuchen7z SFX-Builder, es ist kostenlos, unterstützt Befehlszeilenparameter und Sie können auch den Extraktionspfad auf derGUI-Hauptregisterkarte:
Antwort2
Ich möchte den Extraktionspfad auf %AppData%\Roaming
die Standardeinstellung ändern.
Sie müssen ein "modifiziertes Modul" herunterladen von7z SFX-Builder(Quellenschmiede).
Überprüf denLinks auf der linken Seitezur Dokumentation (beachten Sie, dass diese Links und der folgende Text vonhttps://web.archive.org/)
In Ihrer Konfigurationsdatei:
InstallPath="%AppData%\Roaming"
Konfigurationsdateiparameter
InstallPath="Pfad_zum_Extrakt"
Legt den Extraktionspfad fest. Der Extraktionsordner wird nach der Extraktion nicht gelöscht.
Wenn der
InstallPath
Wert in der Konfigurationsdatei nicht 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 der Extraktion und Ausführung aller Befehle gelöscht.Umgebungsvariablen sind zulässig (mit Ausnahme von
%%T
und Variablen, die in definiert sindSetEnvironment
, wenn%%T
in einer davon verwendet wird). Sie MÜSSEN DOPPELTE Backslashs in Pfaden verwenden. Beispiel:InstallPath="C:\\Windows\\system32\\test"
oder
InstallPath="%PROGRAMFILES%\\test"
Relative Pfade sind zulässig. Der aktuelle Ordner ist derjenige, aus dem das Programm zum Starten des SFX-Archivs ausgeführt wurde. Beispiel:
InstallPath="test"
erstellt einen Ordner mit dem Namen "test" in dem Ordner, aus dem das Programm zum Starten des SFX-Archivs ausgeführt wurde. Alle Dateien werden in den Ordner "test" extrahiert. Andererseits
InstallPath="."
extrahiert den Archivinhalt in den Ordner, aus dem das Programm zum Starten des SFX-Archivs ausgeführt wurde. Außerdem
InstallPath="%%S"
extrahiert den Archivinhalt in den Ordner, in dem sich die SFX befinden.
Wenn Sie nur den Archivinhalt in einen bestimmten Ordner extrahieren möchten, müssen Sie
InstallPath
in der Konfigurationsdatei einen Wert angeben.In diesem Fall sollten Sie in der Konfigurationsdatei weder
RunProgram
„oder“ angeben. „oder“ kann in der Konfigurationsdatei angegeben werden, sollte aber nicht über die Kommandozeile oder mit der Taste [UMSCHALT] aufgerufen werden.ExecuteFile
AutoInstall
AutoInstallX
Wenn Sie
RunProgram
oder angeben oder undExecuteFile
aufrufen , wird die angegebene ausführbare Datei nach der Extraktion gestartet.AutoInstall
AutoInstallX
Antwort3
Benutz einfach -y -o<PathToExtract>
:Setup.exe -y -oc:\abc
Antwort4
(nur für den Fall, dass das immer noch jemand versucht)
Ich konnte nicht herausfinden, wie ich ein SFX-Archiv an einen bestimmten Ort extrahieren kann, ohne auch eine setup.exe oder ähnliche Datei anzugeben.
Ich habe mein Ziel erreicht, indem ich die "-y -oPATH"
gezeigten Schalter verwendet habeHierund Speichern eines regulären SFX-Archivs in einer Batchdatei (Speichern einer Datei in einer Batchdatei)
Das Ergebnis ist keine EXE, sondern eine CMD-Datei. (aberNureine CMD-Datei)
Methode
- erstellenQuelle.exe
- erstellen und bearbeitenscript.cmd
- erstellenkombinieren.cmd
- ausführenkombinieren.cmd
kombinieren.cmdkombiniert, wie der Name schon sagt, script.cmd und source.exe, um zu erstellenAusgabe.cmd
output.cmd ist das Ergebnis. Wenn es ausgeführt wird, kopiert esQuelle.exeaus sich selbst an einen temporären Speicherort, führen Sie es mit den Argumenten aus, die den Speicherort angeben, und löschen Sie dann die temporäre Datei.
Quelle.exe
Dies ist ein 7z SFX-Archiv, das mit der Option „SFX-Archiv erstellen“ erstellt wurde. Es enthält alle Dateien, die Sie extrahieren möchten.
script.cmd
Sie müssen {target} durch den gewünschten Speicherort ersetzen. Beispiel: C:\Beispiel
Dumussexit /b
Fügen Sie vor dem Speichern dieser Datei eine leere neue Zeile hinzu .
;;;===,,,@echo off
;;;===,,,findstr /v "^;;;===,,," "%-f0" > "%temp%\tempdata.exe"
;;;===,,,start /wait "" "%temp%\tempdata.exe" -y -o"{target}"
;;;===,,,del /f /q "%temp%\tempdata.exe"
;;;===,,,exit /b
kombinieren.cmd
copy /a script.cmd /b source.exe /b output.cmd