Можно ли запрограммировать встроенное ZIP-сжатие Windows?
Да, это можно написать с windows-programming помощью VBScript. Например, следующий batch код может создать ZIP-файл .bat из каталога:
Dim fso, winShell, MyTarget, MySource, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set winShell = createObject("shell.application")
MyTarget = Wscript.Arguments.Item(0)
MySource = Wscript.Arguments.Item(1)
Wscript.Echo "Adding " & MySource & " to " & MyTarget
'create a new clean zip archive
Set file = fso.CreateTextFile(MyTarget, True)
file.write("PK" & chr(5) & chr(6) & string(18,chr(0)))
file.close
winShell.NameSpace(MyTarget).CopyHere winShell.NameSpace(MySource).Items
do until winShell.namespace(MyTarget).items.count = winShell.namespace(MySource).items.count
wscript.sleep 1000
loop
Set winShell = Nothing
Set fso = Nothing
Вы также можете windows найти http://www.naterice.com/blog/template_permalink.asp?id=64 полезным, так как zip он включает в себя полную windows реализацию Unzip/Zip в VBScript.
Если windows-applications вы выполняете проверку размера batch-file каждые 500 мс, а не количество scripts элементов, это работает лучше dos-batch для больших файлов. Win 7 zip записывает файл мгновенно, хотя batch-file он еще не сжат:
set fso=createobject("scripting.filesystemobject")
Set h=fso.getFile(DestZip)
do
wscript.sleep 500
max = h.size
loop while h.size > max
Отлично работает windows с огромным количеством лог-файлов.
windows
vbscript
batch-file
zip
scripting
Можно ли запрограммировать встроенное ZIP-сжатие Windows?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.