It is можно zip-файлов без установки каких-либо дополнительных
программное обеспечение (я его тестировал). Решение проблемы:
выполнить в окне командной строки, чтобы создать zip-файл
по имени C:\someArchive.zip
содержит все файлы в папке C:\test3
:
CScript zip.vbs C:\test3 C:\someArchive.zip
где файл zip.vbs
содержит:
'Get command-line arguments.
Set objArgs = WScript.Arguments
Set FS = CreateObject("Scripting.FileSystemObject")
InputFolder = FS.GetAbsolutePathName(objArgs(0))
ZipFile = FS.GetAbsolutePathName(objArgs(1))
'Create empty ZIP file.
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)
Set objShell = CreateObject("Shell.Application")
Set source = objShell.NameSpace(InputFolder).Items
objShell.NameSpace(ZipFile).CopyHere(source)
'Required to let the zip command execute
'If this script randomly fails or the zip file is not complete,
'just increase to more than 2 seconds
wScript.Sleep 2000
Я не проверял его на пути и имена файлов, содержащих пробелы. Это может работать, если кавычки
помещаются вокруг командной строки параметры.
как это работает: встроенная функциональность zip в Windows (Windows XP и более поздних версий?) есть
разоблачен через COM интерфейсы из оболочки Windows
, исследователь.exe-то есть "оболочка".Прикладная часть. Этот COM-интерфейс можно использовать из VBScript сценарий, потому что
такой скрипт может обращаться к компонентам COM. Чтобы сделать скрипт полностью автономным, он создает
пустой ZIP-файл для начала работы (можно также создать пустой ZIP-файл скопируйте его в целевую систему вместе со сценарием VBScript).
VBScript был установлен по умолчанию на каждом рабочем столе
версии Microsoft Windows, начиная с Windows 98.
CScript.exe
является частью узла сценариев Windows.
Сервер сценариев Windows распространяется и устанавливается по умолчанию в Windows 98 и более поздних версиях Windows. Он также устанавливается, если установлен Internet Explorer 5 (или более поздней версии).