Для архивирования данных из команднйо строки встроенным в Windows архиватором zip нам понадобится такой вот скрипт:
Set oFSO = CreateObject("Scripting.FileSystemObject")
ToZip = oFSO.GetAbsolutePathName(WScript.Arguments.Item(0))
ZipName = oFSO.GetAbsolutePathName(WScript.Arguments.Item(1))
d=WindowsZip(ToZip, ZipName)
Function WindowsZip(sFile, sZipFile)
Set oZipShell = CreateObject("WScript.Shell")
Set oZipFSO = CreateObject("Scripting.FileSystemObject")
If Not oZipFSO.FileExists(sZipFile) Then
NewZip(sZipFile)
End If
Set oZipApp = CreateObject("Shell.Application")
sZipFileCount = oZipApp.NameSpace(sZipFile).items.Count
aFileName = Split(sFile, "\")
sFileName = (aFileName(Ubound(aFileName)))
sDupe = False
For Each sFileNameInZip In oZipApp.NameSpace(sZipFile).items
If LCase(sFileName) = LCase(sFileNameInZip) Then
sDupe = True
Exit For
End If
Next
If Not sDupe Then
wscript.echo "Adding " & sfile
oZipApp.NameSpace(sZipFile).Copyhere sFile
On Error Resume Next
Do Until sZipFileCount < oZipApp.NameSpace(sZipFile).Items.Count
Wscript.Sleep(100)
Loop
On Error GoTo 0
End If
End Function
Sub NewZip(sNewZip)
Set oNewZipFSO = CreateObject("Scripting.FileSystemObject")
Set oNewZipFile = oNewZipFSO.CreateTextFile(sNewZip)
oNewZipFile.Write Chr(80) & Chr(75) & Chr(5) & Chr(6) & String(18, 0)
oNewZipFile.Close
Set oNewZipFSO = Nothing
Wscript.Sleep(500)
End Sub0
Сохраняем его в файл например zipit.vbs и потом запускаем как-то так:
CScript zipit.vbs %COMPRESSING_DIR% C:\someArchive.zip
Discussion