Archivo .bat para descomprimir archivos de un archivo .exe

Archivo .bat para descomprimir archivos de un archivo .exe

He creado un archivo .exe que contiene un archivo test.zip y un archivo extract.bat. Estoy intentando configurar el archivo extract.bat para que pueda extraer el test.zip a la carpeta C:\Temp.

El archivo bat se ve así:

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%

Estoy confundido y, para ser honesto, no estoy seguro de si lo estoy haciendo correctamente. No funciona. Mi desafío es que no puedo declarar la ubicación del archivo .zip ya que tanto el archivo test.zip como el archivo extract.bat serían parte del mismo archivo .exe. Además, estoy usando Iexpress.exe para crear el archivo .exe. Cualquier ayuda sería muy apreciada. Gracias de antemano.

Respuesta1

Si el script de extracción es parte del archivo exe, simplemente cree un ejecutable autoextraíble que se extraiga automáticamente en una ubicación específica. (Por cierto, este es el enfoque orientado a objetos: usted le dice al archivo exe que se descomprima solo;) IExpress es solo una de las opciones disponibles.

información relacionada