.exe ファイルからファイルを解凍するための .Bat ファイル

.exe ファイルからファイルを解凍するための .Bat ファイル

test.zip ファイルと extract.bat ファイルを含む .exe ファイルを作成しました。test.zip を C:\Temp フォルダーに抽出できるように extract.bat ファイルを設定しようとしています。

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%

混乱していて、正直言って、正しくやっているかどうかわかりません。うまくいきません。私の課題は、test.zip ファイルと extract.bat ファイルの両方が同じ .exe ファイルの一部になるため、.zip ファイルの場所を宣言できないことです。また、.exe ファイルを作成するために Iexpress.exe を使用しています。どんな助けでも大歓迎です。よろしくお願いします。

答え1

抽出スクリプトが exe ファイルの一部である場合は、指定された場所で自己解凍する自己解凍実行可能ファイルを作成します。(ちなみに、これはオブジェクト指向のアプローチです。exe アーカイブに自己解凍するように指示します。) IExpress は、使用可能なオプションの 1 つにすぎません。

関連情報