7zip - 지정된 추출 경로를 사용하여 자동 추출 아카이브(sfx) 생성

7zip - 지정된 추출 경로를 사용하여 자동 추출 아카이브(sfx) 생성

실행 파일을 생성하기 위해 7zip SFX 아카이브를 얻으려고 합니다. 실행 파일을 얻을 수 있습니다. 하지만 실행하면 Extract to:. %AppData%\Roaming기본으로 변경하고 싶습니다 . 아래 스크린샷은 내가 무엇을 하려는지에 대한 아이디어를 제공합니다.

7zip 설정

추출 대상: 대화 상자

setup.exe아카이브 내부에는 아무것도 없거나 아무것도 없으며 Roaming폴더로 이동해야 하는 파일이 거의 없습니다. 이는 경로를 지정하지 않고도 이 업데이트를 받을 수 있는 많은 사용자를 위한 것입니다. (사용자가 경로를 지정할 필요가 없을 때는 항상 쉽습니다. 그렇지 않으면 사용자가 가장 특이한 경로를 선택할 수 있다는 것이 내 경험입니다!!)

업데이트

지금까지 시도한 내용은 다음과 같습니다. 내 구성 파일 내용은

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

이것이 명령줄 호출입니다.

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

불행히도 작동하지 않습니다. 다음 경로를 제공합니다. 그것은해야한다 %AppData%\\Roaming\\Notepad++.

![추출 경로]

답변1

노력하다7z SFX 빌더, 무료이며 명령줄 매개변수를 지원하고 추출 경로를 지정할 수도 있습니다.GUI 메인 탭:

메인 탭

답변2

%AppData%\Roaming추출 경로를 기본으로 변경하고 싶습니다 .

다음에서 "수정된 모듈"을 다운로드해야 합니다.7z SFX 빌더(소스포지).

을 체크 해봐왼쪽의 링크문서화용(이 링크와 아래 텍스트의 출처는 다음과 같습니다.https://web.archive.org/)

구성 파일에서:

InstallPath="%AppData%\Roaming"

구성 파일 매개변수

InstallPath="path_to_extract"

추출 경로를 설정합니다. 추출 후에도 추출 폴더는 삭제되지 않습니다.

값이 구성 파일에 없거나 대화형 추출 대화 상자에서 경로가 삭제된 경우 InstallPath아카이브가 임시 폴더에 추출됩니다. 이 임시 폴더는 모든 명령의 추출 및 실행 후에 삭제됩니다.

%%T환경 변수가 허용됩니다( 및 에 정의된 변수는 SetEnvironment제외 ) %%T. 경로에 두 개의 백슬래시를 사용해야 합니다. 예를 들어:

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

또는

InstallPath="%PROGRAMFILES%\\test"

상대 경로가 허용됩니다. 현재 폴더는 SFX 아카이브를 시작하는 프로그램이 실행된 폴더입니다. 예를 들어,

InstallPath="test"

SFX 아카이브를 실행하는 프로그램이 실행된 폴더에 "test"라는 이름의 폴더를 생성합니다. 모든 파일은 "test" 폴더에 추출됩니다. 반면에,

InstallPath="."

SFX 아카이브를 시작하는 프로그램이 실행된 폴더에 아카이브 내용을 추출합니다. 또한,

InstallPath="%%S"

SFX가 있는 폴더에 아카이브 콘텐츠를 추출합니다.

아카이브 콘텐츠를 특정 폴더에 추출하는 것이 필요한 경우 InstallPath구성 파일에 값을 지정해야 합니다.

이 경우 구성 파일에 RunProgram또는를 지정하면 안 됩니다 . 또는 구성 파일에 지정할 수 있지만 명령줄이나 [SHIFT] 키를 사용하여 호출하면 안 됩니다.ExecuteFileAutoInstallAutoInstallX

RunProgramor 를 지정하거나 and를 ExecuteFile호출하면 추출 후 지정된 실행 파일이 시작됩니다.AutoInstallAutoInstallX

원천구성 파일 매개변수

답변3

그냥 사용하십시오 -y -o<PathToExtract>:Setup.exe -y -oc:\abc

답변4

(아직 누군가가 이 작업을 시도하고 있는 경우를 대비해)

setup.exe 또는 유사한 파일을 지정하지 않고는 SFX 아카이브를 특정 위치로 추출하는 방법을 알 수 없었습니다.

"-y -oPATH"표시된 스위치를 사용하여 목표를 달성했습니다.여기배치 파일 내에 일반 SFX 아카이브를 저장합니다(배치 파일 안에 파일 저장)

결과는 EXE가 아니라 CMD 파일입니다. (하지만단지CMD 파일)

방법

  • 만들다소스.exe
  • 생성 및 편집스크립트.cmd
  • 만들다결합.cmd
  • 실행하다결합.cmd

결합.cmd이름에서 알 수 있듯이 script.cmd와 source.exe를 결합하여출력.cmd

output.cmd는 결과이며 실행 시 복사됩니다.소스.exe자체적으로 임시 위치로 이동하고 위치를 지정하는 인수를 사용하여 실행한 다음 임시 파일을 삭제합니다.

소스.exe

이것은 "make sfx archive" 옵션을 사용하여 생성된 7z SFX 아카이브입니다. 여기에는 추출하려는 모든 파일이 포함되어 있습니다.

스크립트.cmd

{target}을 원하는 위치로 바꿔야 합니다. 예: C:\Example

~ 해야 하다exit /b이 파일을 저장하기 전에 빈 새 줄을 추가하십시오 .

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

결합.cmd

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

관련 정보