Как разархивировать файл в VBScript, используя внутренние параметры Windows XP в

Я хочу разархивировать ZIP-файл с помощью VBScript, но это всегда новый компьютер без внешних приложений. Теперь я знаю, что в Windows XP и 2003 есть опция внутренней папки .zip, поэтому я думаю, что могу использовать ее через VBScript для извлечения файла.

Как мне это сделать?

Я старался:

Set objShell = CreateObject("Shell.Application")

Set SrcFldr = objShell.NameSpace(fileName)
Set DestFldr = objShell.NameSpace(appDir)
DestFldr.CopyHere(SrcFldr) 

Что не сработало. В чем может быть проблема?


person aviv    schedule 26.05.2009    source источник
comment
Взгляните на третью запись на сайте Роба ван дер Вуда.   -  person bugmagnet    schedule 26.05.2009
comment
проверьте это   -  person npocmaka    schedule 31.01.2015


Ответы (1)


Просто установите ZipFile = расположение zip-файла и ExtractTo = место, куда следует распаковать zip-файл.

'The location of the zip file.
ZipFile="C:\Test.Zip"
'The folder the contents should be extracted to.
ExtractTo="C:\Test\"

'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
person Tester101    schedule 26.05.2009
comment
При написании того же на JScript нужно позаботиться о том, чтобы избежать обратной косой черты (\\). Это вызвало у меня сильную головную боль. - person Max Leske; 21.07.2015
comment
Получение ошибки как объекта Required. установить FilesInZip=objShell.NameSpace(ZipFile).items. Может ли кто-нибудь помочь мне в этом - person Arul Sidthan; 19.02.2018
comment
Введите полный путь к файлу или объедините CreateObject(Scripting.FileSystemObject).GetParentFolderName(WScript.ScriptFullName) с file.zip - person raymarch; 25.10.2018
comment
@ Tester101 Привет, итак, плз, если файлы существуют, как код может перезаписать их все, не запрашивая этого? - person It Wasn't Me; 13.02.2019
comment
Я просто хочу отметить, что путь должен быть абсолютным путем, а файл должен иметь расширение .zip (в некоторых случаях это ZIP-файл, но он может иметь другое расширение - перед извлечением его необходимо переименовать). - person tukusejssirs; 11.05.2019
comment
Может ли кто-нибудь улучшить этот код, чтобы отображать ошибку, если zip-файл поврежден и не может быть открыт? В Windows 7 этот скрипт не отображает ошибку, если заархивированный файл поврежден. (Спрашивая, поскольку я вообще не знаю vbscript, и немного новичка не помогло) - person Mandeep Singh; 10.01.2020
comment
Мандип, ты мог бы добавить обработку ошибок. vbs позволяет продолжить, если произойдет ошибка, а затем проверить, не произошла ли ошибка. при ошибке возобновите затем, затем проверьте наличие ошибки с помощью If Err ‹› 0 Then. И если у вас есть процесс, выполняющий сценарий, обязательно запустите сценарий из bat-файла, который вызывает сценарий, а затем либо записывает ››, либо добавляет ›› в журнал. Вы можете сделать себе имя. так что это будет похоже на cscript C:\Directory\Myscript.vbs ›› C:\Directory\MyLog.txt, а затем запустить задание, запустив пакет. Это будет регистрировать любой wscript.echo и любые всплывающие сообщения. - person PopeDarren; 05.02.2021