Извлечь файлы из ZIP-архива с паролем - PullRequest
0 голосов
/ 01 октября 2018

Я работаю над сценарием на JScript, который извлекает filez из ZIP-архива с паролем.Во-первых, я нашел здесь, в StackOverflow, в другом потоке сценарий на VBS, который вроде как решил проблему, вот он:

WScript.echo("Instantiating a ZipFile object...")

Dim zip 
Set zip = CreateObject("Ionic.Zip.ZipFile")

WScript.echo("Initialize (Read)...")
zip.Initialize("C:\Temp\ZipFile-created-from-VBScript.zip")

WScript.echo("setting the password for extraction...")
zip.Password = "This is the Password."

' set the default action for extracting an existing file
' 0 = throw exception
' 1 = overwrite silently
' 2 = don't overwrite (silently)
' 3 = invoke the ExtractProgress event

zip.ExtractExistingFile = 1

WScript.echo("extracting all files...")
Call zip.ExtractAll("extract")

WScript.echo("Disposing...")
zip.Dispose()

WScript.echo("Done.")

Я пытался переписать этот скипт в JScript, но когда выполнялон постоянно возвращал ошибку, связанную с библиотекой Ionic.Zip.ZipFile, и поэтому я пришел с другим решением, теперь на JScript:

objShell = new ActiveXObject("Shell.Application");

FilesInZip = objShell.NameSpace(zipFile).Items();
objShell.NameSpace(path).copyHere(FilesInZip, 4);

Но этот скрипт просто извлекает файлы из архива,Может ли кто-нибудь просмотреть этот код и помочь мне, или, может быть, намеревается найти другое решение моей проблемы?

1 Ответ

0 голосов
/ 05 октября 2018

Вы не сможете извлечь файлы из архива с паролем, используя последний пример, я бы порекомендовал вам использовать 7zip или что-то подобное.Вот пример того, как будет выглядеть разархивированный процесс с 7zip:

function ExtractFile(FileName, Password) {
    executableCommand = "x " + FileName + " -p" + Password;
    objShell.ShellExecute("7z.exe", executableCommand, /*Path to 7Zip*/, "open", 0);
}
...