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

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

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%\Roamingstandardmäßig ändern. Der Screenshot unten gibt eine Vorstellung davon, was ich versuche.

7zip-Einstellungen

Dialogfeld „Extrahieren nach:“

setup.exeIm Archiv ist nichts oder nichts, es hat nur ein paar Dateien, die in Roamingden 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++.

![Pfad extrahieren]

Antwort1

Versuchen7z SFX-Builder, es ist kostenlos, unterstützt Befehlszeilenparameter und Sie können auch den Extraktionspfad auf derGUI-Hauptregisterkarte:

Registerkarte „Haupt“

Antwort2

Ich möchte den Extraktionspfad auf %AppData%\Roamingdie 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 InstallPathWert 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 %%Tund Variablen, die in definiert sind SetEnvironment, wenn %%Tin 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 InstallPathin 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.ExecuteFileAutoInstallAutoInstallX

Wenn Sie RunProgramoder angeben oder und ExecuteFileaufrufen , wird die angegebene ausführbare Datei nach der Extraktion gestartet.AutoInstallAutoInstallX

QuelleKonfigurationsdateiparameter

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 /bFü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

verwandte Informationen