2

У меня есть исходный zip-файл, который находится в пользовательском каталоге "Мои документы". Это гарантированно всегда будет там. Я ищу способ создания пакета или сценария, который позволил бы мне разархивировать этот файл в каталог назначения также в каталоге пользователя. Если пункт назначения уже существует, он должен сначала удалить существующую папку назначения.

Пример процесса:

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

Я ищу решение, которое будет работать на Windows XP и Windows 7. Если возможно, я не хочу использовать zip-приложение, отличное от встроенного в Windows XP/7.

2 ответа2

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
1

Здесь я попытался обобщить способы архивации файлов и папок без использования внешних инструментов:

А также попытался создать инструмент для общего пользования, способный к разархивированию и большему количеству дополнительных функций. ZIPJS.BAT - ему не нужны дополнительные файлы, такие как .vbs не создаются временные.Все в одном и называется как обычный bat файл.

чтобы распаковать папку с файлом, вы можете использовать это:

// 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .