%20com%20o%20caminho%20de%20extra%C3%A7%C3%A3o%20especificado.png)
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%\Roaming
o padrão. A captura de tela abaixo dará uma ideia do que estou tentando fazer.
Não há nada setup.exe
nem nada dentro do arquivo, ele contém apenas alguns arquivos que precisam ir para Roaming
a 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++
.
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:
Responder2
Gostaria de alterar o caminho de extração para %AppData%\Roaming
o 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
InstallPath
valor 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
%%T
variáveis e definidas emSetEnvironment
, se%%T
for 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
InstallPath
no arquivo de configuração.Neste caso você não deve especificar
RunProgram
ouExecuteFile
no arquivo de configuração.AutoInstall
ouAutoInstallX
pode 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
RunProgram
ouExecuteFile
ou invocarAutoInstall
eAutoInstallX
, o executável especificado será iniciado após a extraçã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 /b
antes 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