Как распаковать файл с помощью cmd?

Как распаковать файл с помощью cmd?

Я хочу создать BAT-файл, который будет ZIP или UNZIP-архивировать файл. Для архивирования файла я нашел этот вопрос: Можно ли заархивировать файл из командной строки, используя ТОЛЬКО встроенные возможности Windows для сжатия файлов?

Ответы, данные там, великолепны и работают для меня, но я не смог найти никакой информации о том, как распаковать файлы. Как в ссылке, я не могу предположить никаких сторонних инструментов (кроме winRAR).

Спасибо заранее и извините за ошибки в английском

решение1

Этот код пакетного файла поможет вам распаковать файл.

@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%

Примечание.C:\Temp — папка, в которой хранится извлеченный (UnZip) файл.

А c:\FolderName\batch.zip — это исходный путь (где хранятся Zip-файлы).

Пожалуйста, измените полный путь к файлу (диск, папку и имя ZIP-файла) в соответствии с вашими потребностями.

решение2

На Windows 10 build 17063 или более поздней версии вы можете использовать tar.exe(аналогично *nix). Это также доступно в контейнере nanoserver docker

C:\> tar -xf archive.zip

Примечание: поддержка zip недостаточно документирована.

ссылка:https://www.freebsd.org/cgi/man.cgi?query=bsdtar&sektion=1&manpath=FreeBSD+5.3-stable

решение3

Если у вас Windows 10, вы можете использовать гораздо более короткий эквивалент Powershell

Expand-Archive -Force C:\path\to\archive.zip C:\where\to\extract\to

решение4

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 и запустите его.

Связанный контент