7zip: cree un archivo autoextraíble (sfx) con la ruta de extracción especificada

7zip: cree un archivo autoextraíble (sfx) con la ruta de extracción especificada

Estoy intentando obtener el archivo 7zip SFX para crear un ejecutable. Puedo obtener el ejecutable. Pero cuando lo ejecuto, me da la ruta de descarga para Extract to:. Me gustaría cambiar a %AppData%\Roamingpredeterminado. La captura de pantalla a continuación le dará una idea de lo que estoy tratando de hacer.

configuración 7zip

Extraer a: cuadro de diálogo

No hay setup.exenada dentro del archivo, solo tiene unos pocos archivos que deben ir a Roamingla carpeta. Esto es para muchos de nuestros usuarios, quienes pueden obtener estas actualizaciones sin que especifiquen una ruta. (¡Siempre es fácil cuando los usuarios no tienen que especificar una ruta; de lo contrario, según mi experiencia, los usuarios pueden elegir las rutas más inusuales!)

Actualizar

Esto es lo que he probado hasta ahora. el contenido de mi archivo de configuración es

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

Esta es la llamada a la línea de comando.

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

Lamentablemente no funciona. Da el siguiente camino. Debería ser %AppData%\\Roaming\\Notepad++.

![Extraer ruta]

Respuesta1

IntentarGenerador de efectos especiales 7z, es gratis, admite parámetros de línea de comando y también puede especificar la ruta de extracción en elPestaña principal de la GUI:

Pestaña principal

Respuesta2

Me gustaría cambiar la ruta de extracción %AppData%\Roamingpor defecto.

Necesita descargar un "módulo modificado" desdeGenerador de efectos especiales 7z(fuenteforja).

Comprobar elenlaces a la izquierdapara obtener documentación (tenga en cuenta estos enlaces y el texto a continuación es dehttps://web.archive.org/)

En su archivo de configuración:

InstallPath="%AppData%\Roaming"

Parámetros del archivo de configuración

InstallPath="ruta_a_extracción"

Establece la ruta de extracción. La carpeta de extracción no se eliminará después de la extracción.

Si el InstallPathvalor no está presente en el archivo de configuración o la ruta se eliminó del cuadro de diálogo de extracción interactivo, el archivo se extraerá a una carpeta temporal. Esta carpeta temporal se eliminará después de la extracción y ejecución de todos los comandos.

Se permiten variables de entorno (a excepción de %%Ty variables definidas en SetEnvironment, si %%Tse utilizan en alguna de ellas). DEBE utilizar barras invertidas DOBLES en las rutas. Por ejemplo:

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

o

InstallPath="%PROGRAMFILES%\\test"

Se permiten caminos relativos. La carpeta actual es aquella desde la que se ejecutó el programa que inicia el archivo SFX. Por ejemplo,

InstallPath="test"

crea una carpeta con el nombre de "prueba" en la carpeta desde la cual se ejecutó el programa que inicia el archivo SFX. Todos los archivos se extraerán a la carpeta "prueba". Por otro lado,

InstallPath="."

extrae el contenido del archivo a la carpeta desde la cual se ejecutó el programa que inicia el archivo SFX. También,

InstallPath="%%S"

extrae el contenido del archivo a la carpeta donde se encuentra el SFX.

Si todo lo que necesita es extraer el contenido del archivo comprimido a una carpeta determinada, debe especificar un valor InstallPathen el archivo de configuración.

En este caso no debes especificar RunProgramo ExecuteFileen el archivo de configuración. AutoInstallo AutoInstallXpuede especificarse en el archivo de configuración, pero no debe invocarse a través de la línea de comando o con la tecla [SHIFT].

Si especifica RunProgramo ExecuteFileo invoca AutoInstally AutoInstallX, el ejecutable especificado se iniciará después de la extracción.

FuenteParámetros del archivo de configuración

Respuesta3

Solo usa -y -o<PathToExtract>:Setup.exe -y -oc:\abc

Respuesta4

(en caso de que alguien esté intentando hacer esto todavía)

No pude entender cómo hacer un extracto del archivo SFX en una ubicación específica, sin especificar también un setup.exe o un archivo similar.

Logré lograr mi objetivo usando los "-y -oPATH"interruptores que se muestranaquíy almacenar un archivo SFX normal dentro de un archivo por lotes (almacenar un archivo dentro de un archivo por lotes)

El resultado no es un EXE, sino un archivo CMD. (perojustoun archivo CMD)

Método

  • crearfuente.exe
  • crear y editarscript.cmd
  • crearcombinar.cmd
  • ejecutarcombinar.cmd

combinar.cmdcomo su nombre indica, combina script.cmd y source.exe para crearsalida.cmd

output.cmd es el resultado, cuando se ejecuta, se copiaráfuente.exefuera de sí mismo a una ubicación temporal, ejecútelo con los argumentos que especifican la ubicación y luego elimine el archivo temporal.

fuente.exe

Este es un archivo 7z SFX creado usando la opción "crear archivo sfx". Contiene todos los archivos que desea extraer.

script.cmd

debe reemplazar {target} con la ubicación deseada. por ejemplo: C:\Ejemplo

debeagregue una nueva línea vacía exit /bantes de guardar este archivo.

;;;===,,,@echo off
;;;===,,,findstr /v "^;;;===,,," "%-f0" > "%temp%\tempdata.exe"
;;;===,,,start /wait "" "%temp%\tempdata.exe" -y -o"{target}"
;;;===,,,del /f /q "%temp%\tempdata.exe"
;;;===,,,exit /b

combinar.cmd

copy /a script.cmd  /b source.exe /b output.cmd

información relacionada