Я работаю над VBScript, чтобы распаковать несколько файлов один за другим.
Я использую код ниже
Dim folder(3)
folder(0) = "UBO90R1"
folder(1) = "UBO90R2"
folder(2) = "UBO100R1"
folder(3) = "UBO100R2"
For i = 0 To 3
unzip_Source = "D:\Autobackup\" & folder(i) & ".zip"
unzip_destination = "D:\Autobackup_unzip\" & folder(i) &"\"
Call ExtractFilesFromZip(unzip_Source,unzip_destination)
WScript.Echo "unzip Finished"
Next
Sub ExtractFilesFromZip(pathToZipFile, dirToExtractFiles)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
pathToZipFile = fso.GetAbsolutePathName(pathToZipFile)
dirToExtractFiles = fso.GetAbsolutePathName(dirToExtractFiles)
If (Not fso.FileExists(pathToZipFile)) Then
WScript.Echo "Zip file does not exist: " & pathToZipFile
Exit Sub
End If
If Not fso.FolderExists(dirToExtractFiles) Then
WScript.Echo "Directory does not exist: " & dirToExtractFiles
Exit Sub
End If
dim sa : Set sa = CreateObject("Shell.Application")
Dim zip : Set zip = sa.NameSpace(pathToZipFile)
Dim d : Set d = sa.NameSpace(dirToExtractFiles)
d.CopyHere zip.items, 4
Do Until zip.Items.Count <= d.Items.Count
WScript.Sleep(200)
Loop
End Sub
Проблема в настоящее время у меня есть, если папка или файл ужесуществует, чем открыть диалоговое окно для пользователя, чтобы выбрать любую опцию перезаписи, сохранить оба файла и т. д.
Если я изменю следующую строку из кода
d.CopyHere zip.items, 4
'Integer 4 didn't show the progress bar
на
d.CopyHere zip.items, 16
'Integer 16 overwrite the existing file but it shows the progress bar.
Я хотел бы перезаписать существующий файл без какого-либо диалогового окна и без индикатора выполнения.
PS: Код для распаковки скопирован с здесь .