![Como descompactar um arquivo usando o cmd?](https://rvso.com/image/1558697/Como%20descompactar%20um%20arquivo%20usando%20o%20cmd%3F.png)
Quero criar um arquivo BAT que compacte ou descompacte um arquivo. Para compactar um arquivo, encontrei esta pergunta: Você pode compactar um arquivo no prompt de comando usando SOMENTE o recurso interno do Windows para compactar arquivos?
As respostas fornecidas são ótimas e funcionam para mim, mas não consegui encontrar nenhuma informação sobre como descompactar os arquivos. Como no link, não posso assumir nenhuma ferramenta de terceiros (exceto winRAR).
Agradecemos antecipadamente e desculpe pelos erros de inglês
Responder1
Este código de arquivo em lote o ajudará a descompactar um arquivo.
@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%
ObservaçãoC:\Temp é a pasta onde armazena o arquivo extraído (descompactar).
E c:\FolderName\batch.zip é o caminho de origem (onde os arquivos Zip são armazenados).
Por favor, altere o caminho completo do arquivo (unidade, pasta e nome do arquivo Zip), de acordo com sua necessidade.
Responder2
No Windows 10 build 17063 ou posterior você pode usar tar.exe
(semelhante ao *nix). Isso também está disponível no contêiner docker nanoserver
C:\> tar -xf archive.zip
Nota: o suporte zip não está bem documentado
referência:https://www.freebsd.org/cgi/man.cgi?query=bsdtar&sektion=1&manpath=FreeBSD+5.3-estável
Responder3
Se você tiver o Windows 10, poderá usar o equivalente muito mais curto do Powershell
Expand-Archive -Force C:\path\to\archive.zip C:\where\to\extract\to
Responder4
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
O seguinte vbscript pode ser salvo como arquivo.vbs e executado usando script em lote como:
file.vbs
salve isso no arquivo .bat e execute-o.