.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 只是可用选项之一。

相关内容