Descompacte o arquivo da origem para o destino no diretório do usuário em várias versões do Windows

2

Eu tenho um arquivo zip de origem que está localizado no diretório "Meus Documentos" de um usuário. É garantido que sempre estará lá. Eu estou procurando uma maneira de criar um lote ou script que me permitirá descompactar esse arquivo para um diretório de destino também dentro do diretório do usuário. Se o destino já estiver lá, ele deve primeiro excluir a pasta de destino existente.

Exemplo de processo:

srcFile = %user%\My Documents\file.zip
destFolder = %user%\My Documents\Unzipped\
if destFolder exists, delete it
unzip srcFile to destFolder

Estou procurando uma solução que funcione no Windows XP e no Windows 7. Se possível, não quero usar um aplicativo zip diferente daquele incorporado no Windows XP / 7.

    
por Michael Mankus 28.05.2013 / 20:06

2 respostas

2

DelUnzip.cmd:

RD /S /Q "%USERPROFILE%\My Documents\Unzipped"
cscript UnzipZip.vbs

UnzipZip.vbs:

strZipFile  = "\file.zip"
strUnzipped = "\Unzipped\"

Sub UnZip(ExtractTo,ZipFile)

Set fso = CreateObject("Scripting.FileSystemObject") 
    If NOT fso.FolderExists(ExtractTo) Then 
       fso.CreateFolder(ExtractTo) 
End If 

Set objShell = CreateObject("Shell.Application") 
Set FilesInZip=objShell.NameSpace(ZipFile).items 

ObjShell.NameSpace(ExtractTo).CopyHere(FilesInZip) 
Set fso = Nothing 
Set objShell = Nothing 
End Sub

set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("MyDocuments")

strZipPath   = strDesktop & strZipFile
strUnzipPath = strDesktop & strUnzipped

UnZip strUnzipPath , strZipPath
    
por 28.05.2013 / 21:23
1

Aqui eu Tentei resumir maneiras de como arquivos e pastas podem ser compactados sem ferramentas externas :

E também tentou criar uma ferramenta para uso comum capaz de compactar o zip e poucos recursos adicionais. ZIPJS.BAT - ele não precisa de arquivos adicionais como .vbs nem cria um temp ones.All em um e chamado como um arquivo bat normal.

para descompactar a pasta do arquivo, você pode usar isto:

// unzip content of a zip to given folder.content of the zip will be preserved (-keep yes).Destination will be overwritten (-force yes)
call zipjs.bat unzip -source C:\myDir\myZip.zip -destination C:\MyDir -keep yes -force yes
    
por 24.01.2015 / 20:12