.exe 파일에서 파일의 압축을 풀기 위한 .Bat 파일

.exe 파일에서 파일의 압축을 풀기 위한 .Bat 파일

test.zip 파일과 extract.bat 파일이 포함된 .exe 파일을 만들었습니다. test.zip을 C:\Temp 폴더로 추출할 수 있도록 extract.bat 파일을 구성하려고 합니다.

Bat 파일은 다음과 같습니다.

echo off
setlocal
cd /d %~dp0
Call :UnZipFile "C:\Temp\" **for /F %%I IN ('dir /b /s *.zip)**
exit /b

:UnZipFile <ExtractTo> <newzipfile>
set vbs="%temp%\_.vbs"
if exist %vbs% del /f /q %vbs%
>%vbs%  echo Set fso = CreateObject("Scripting.FileSystemObject")
>>%vbs% echo If NOT fso.FolderExists(%1) Then
>>%vbs% echo fso.CreateFolder(%1)
>>%vbs% echo End If
>>%vbs% echo set objShell = CreateObject("Shell.Application")
>>%vbs% echo set FilesInZip=objShell.NameSpace(%2).items
>>%vbs% echo objShell.NameSpace(%1).CopyHere(FilesInZip)
>>%vbs% echo Set fso = Nothing
>>%vbs% echo Set objShell = Nothing
cscript //nologo %vbs%
if exist %vbs% del /f /q %vbs%

혼란스럽고 솔직히 말해서 내가 올바르게 하고 있는지 확신할 수 없습니다. 작동하지 않습니다. 내 과제는 test.zip 파일과 extract.bat 파일이 모두 동일한 .exe 파일의 일부이기 때문에 .zip 파일의 위치를 ​​선언할 수 없다는 것입니다. 또한 Iexpress.exe를 사용하여 .exe 파일을 생성하고 있습니다. 어떤 도움이라도 주시면 감사하겠습니다. 미리 감사드립니다.

답변1

추출 스크립트가 exe 파일의 일부인 경우 지정된 위치에서 자체 압축을 풀 수 있는 자동 압축 풀기 실행 파일을 만드세요. (이것은 객체 지향 접근 방식입니다. exe 아카이브에 자체적으로 압축을 풀도록 지시합니다.) IExpress는 사용 가능한 옵션 중 하나일 뿐입니다.

관련 정보