7zip - Crie um arquivo autoextraível (sfx) com o caminho de extração especificado

7zip - Crie um arquivo autoextraível (sfx) com o caminho de extração especificado

Estou tentando fazer com que o arquivo 7zip SFX crie um executável. Consigo obter o executável. Mas quando eu o executo, ele fornece o caminho de download para o arquivo Extract to:. Eu gostaria de mudar para %AppData%\Roamingo padrão. A captura de tela abaixo dará uma ideia do que estou tentando fazer.

Configurações 7zip

Extrair para: caixa de diálogo

Não há nada setup.exenem nada dentro do arquivo, ele contém apenas alguns arquivos que precisam ir para Roaminga pasta. Isso é para muitos de nossos usuários, que podem obter essas atualizações sem especificar um caminho. (É sempre fácil quando os usuários não precisam especificar um caminho, caso contrário, pela minha experiência, os usuários podem escolher os caminhos mais incomuns!!)

Atualizar

Aqui está o que tentei até agora. o conteúdo do meu arquivo de configuração é

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

Esta é a chamada da linha de comando.

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

Infelizmente isso não funciona. Ele fornece o seguinte caminho. Deveria ser %AppData%\\Roaming\\Notepad++.

![Extrair caminho]

Responder1

TentarConstrutor de efeitos sonoros 7z, é gratuito, suporta parâmetros de linha de comando e você também pode especificar o caminho de extração noGuia principal da GUI:

Aba principal

Responder2

Gostaria de alterar o caminho de extração para %AppData%\Roamingo padrão.

Você precisa baixar um "módulo modificado" deConstrutor de efeitos sonoros 7z(fonteforja).

Verifica alinks à esquerdapara documentação (observe estes links e o texto abaixo é dehttps://web.archive.org/)

No seu arquivo de configuração:

InstallPath="%AppData%\Roaming"

Parâmetros do arquivo de configuração

InstallPath = "caminho_para_extrair"

Define o caminho de extração. A pasta de extração não será excluída após a extração.

Se o InstallPathvalor não estiver presente no arquivo de configuração ou o caminho tiver sido excluído da caixa de diálogo de extração interativa, o arquivo será extraído para uma pasta temporária. Esta pasta temporária será excluída após a extração e execução de todos os comandos.

Variáveis ​​de ambiente são permitidas (com exceção das %%Tvariáveis ​​e definidas em SetEnvironment, se %%Tfor usado em qualquer uma delas). Você DEVE usar barras invertidas DUPLAS nos caminhos. Por exemplo:

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

ou

InstallPath="%PROGRAMFILES%\\test"

Caminhos relativos são permitidos. A pasta atual é aquela a partir da qual o programa que inicia o arquivo SFX foi executado. Por exemplo,

InstallPath="test"

cria uma pasta com o nome "teste" na pasta a partir da qual o programa que inicia o arquivo SFX foi executado. Todos os arquivos serão extraídos para a pasta “teste”. Por outro lado,

InstallPath="."

extrai o conteúdo do arquivo para a pasta a partir da qual o programa que inicia o arquivo SFX foi executado. Também,

InstallPath="%%S"

extrai o conteúdo do arquivo para a pasta onde o SFX está localizado.

Se tudo que você precisa é extrair o conteúdo do arquivo para uma determinada pasta, você precisa especificar um valor para InstallPathno arquivo de configuração.

Neste caso você não deve especificar RunProgramou ExecuteFileno arquivo de configuração. AutoInstallou AutoInstallXpode ser especificado no arquivo de configuração, mas não deve ser invocado através da linha de comando ou com a tecla [SHIFT].

Se você especificar RunProgramou ExecuteFileou invocar AutoInstalle AutoInstallX, o executável especificado será iniciado após a extração.

FonteParâmetros do arquivo de configuração

Responder3

Apenas use -y -o<PathToExtract>:Setup.exe -y -oc:\abc

Responder4

(caso alguém ainda esteja tentando fazer isso)

Não consegui descobrir como extrair um arquivo SFX para um local específico, sem especificar também um setup.exe ou arquivo semelhante.

Consegui atingir meu objetivo usando as "-y -oPATH"opções mostradasaquie armazenar um arquivo SFX normal dentro de um arquivo em lote (armazenando um arquivo dentro de um arquivo em lote)

O resultado não é um EXE, mas um arquivo CMD. (masapenasum arquivo CMD)

Método

  • criarfonte.exe
  • criar e editarscript.cmd
  • criarcombinar.cmd
  • executarcombinar.cmd

combinar.cmdcomo o nome sugere, combina script.cmd e source.exe para criarsaída.cmd

output.cmd é o resultado, quando executado, ele irá copiarfonte.exefora de si mesmo para um local temporário, execute-o com os argumentos especificando o local e exclua o arquivo temporário.

fonte.exe

Este é um arquivo SFX 7z criado usando a opção "make sfx archive". Ele contém todos os arquivos que você deseja extrair.

script.cmd

você precisa substituir {target} pelo local desejado. por exemplo: C:\Exemplo

vocêdeveadicione uma nova linha vazia exit /bantes de salvar este arquivo.

;;;===,,,@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

informação relacionada