.Bat-Datei zum Entpacken von Dateien aus einer .exe-Datei

.Bat-Datei zum Entpacken von Dateien aus einer .exe-Datei

Ich habe eine EXE-Datei erstellt, die eine test.zip-Datei und eine extract.bat-Datei enthält. Ich versuche, die extract.bat-Datei so zu konfigurieren, dass sie die test.zip-Datei in den Ordner C:\Temp extrahieren kann.

Die Bat-Datei sieht folgendermaßen aus:

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%

Ich bin verwirrt und ehrlich gesagt nicht sicher, ob ich es richtig mache. Es funktioniert nicht. Mein Problem ist, dass ich den Speicherort der ZIP-Datei nicht angeben kann, da sowohl die Datei test.zip als auch die Datei extract.bat Teil derselben EXE-Datei wären. Außerdem verwende ich Iexpress.exe, um die EXE-Datei zu erstellen. Ich wäre für jede Hilfe sehr dankbar. Vielen Dank im Voraus.

Antwort1

Wenn das Extraktionsskript Teil der EXE-Datei ist, erstellen Sie einfach eine selbstextrahierende ausführbare Datei, die sich selbst an einem angegebenen Ort extrahiert. (Dies ist übrigens der objektorientierte Ansatz: Sie sagen dem EXE-Archiv, dass es sich selbst entpacken soll ;) IExpress ist nur eine der verfügbaren Optionen.

verwandte Informationen