![7zip: cree un archivo autoextraíble (sfx) con la ruta de extracción especificada](https://rvso.com/image/1493932/7zip%3A%20cree%20un%20archivo%20autoextra%C3%ADble%20(sfx)%20con%20la%20ruta%20de%20extracci%C3%B3n%20especificada.png)
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%\Roaming
predeterminado. La captura de pantalla a continuación le dará una idea de lo que estoy tratando de hacer.
No hay setup.exe
nada dentro del archivo, solo tiene unos pocos archivos que deben ir a Roaming
la 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++
.
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:
Respuesta2
Me gustaría cambiar la ruta de extracción %AppData%\Roaming
por 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
InstallPath
valor 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
%%T
y variables definidas enSetEnvironment
, si%%T
se 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
InstallPath
en el archivo de configuración.En este caso no debes especificar
RunProgram
oExecuteFile
en el archivo de configuración.AutoInstall
oAutoInstallX
puede 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
RunProgram
oExecuteFile
o invocaAutoInstall
yAutoInstallX
, el ejecutable especificado se iniciará después de la extracció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
túdebeagregue una nueva línea vacía exit /b
antes 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