Файл .Bat для распаковки файлов из файла .exe

Файл .Bat для распаковки файлов из файла .exe

Я создал файл .exe, содержащий файл test.zip и файл extract.bat. Я пытаюсь настроить файл extract.bat так, чтобы он мог извлечь test.zip в папку C:\Temp.

Файл 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%

Я в замешательстве и, честно говоря, не уверен, правильно ли я это делаю. Это не работает. Моя проблема в том, что я не могу объявить местоположение файла .zip, поскольку и файл test.zip, и файл extract.bat будут частью одного и того же файла .exe. Кроме того, я использую Iexpress.exe для создания файла .exe. Любая помощь будет очень кстати. Заранее спасибо.

решение1

Если скрипт извлечения является частью exe-файла, просто создайте самораспаковывающийся исполняемый файл, который будет самораспаковываться в указанное место. (Кстати, это объектно-ориентированный подход: вы указываете exe-архиву распаковать себя ;) IExpress — это только один из доступных вариантов.

Связанный контент