Я хочу создать BAT-файл, который будет ZIP или UNZIP файл. Для запечатывания файла я нашел этот вопрос: https://superuser.com/questions/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili/112094
Ответы, данные там, великолепны и работают для меня, но я не смог найти никакой информации о том, как разархивировать файлы. Как и в ссылке, я не могу'предположить никаких сторонних инструментов (кроме winRAR).
Заранее спасибо и извините за английские ошибки
Если у вас Windows 10, вы можете использовать гораздо более короткий эквивалент Powershell
Expand-Archive -Force C:\path\to\archive.zip C:\where\to\extract\to
Этот код пакетного файла поможет вам разархивировать файл.
@echo off
setlocal
cd /d %~dp0
Call :UnZipFile "C:\Temp\" "c:\FolderName\batch.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%
N.B. C:\Temp - это папка, в которой хранится распакованный файл.
А c:\FolderName\batch.zip - это путь к источнику (где хранятся Zip-файлы).
*Пожалуйста, измените полный путь к файлу (диск, папка и имя Zip-файла) в соответствии с вашими потребностями.
ZipFile="C:\Users\spvaidya\Music\folder.zip"
ExtractTo="C:\Users\spvaidya\Music\"
'If the extraction location does not exist create it.
Set fso = CreateObject("Scripting.FileSystemObject")
If NOT fso.FolderExists(ExtractTo) Then
fso.CreateFolder(ExtractTo)
End If
'Extract the contants of the zip file.
set objShell = CreateObject("Shell.Application")
set FilesInZip=objShell.NameSpace(ZipFile).items
objShell.NameSpace(ExtractTo).CopyHere(FilesInZip)
Set fso = Nothing
Set objShell = Nothing
Следующий vbscript можно сохранить как file.vbs и затем запустить с помощью пакетного сценария, например:
file.vbs
сохраните это в .bat файл и запустите его.