.Bat 檔案從 .exe 檔案解壓縮文件

.Bat 檔案從 .exe 檔案解壓縮文件

我建立了一個包含 test.zip 檔案和 extract.bat 檔案的 .exe 檔案。我正在嘗試配置 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 只是可用選項之一。

相關內容