Het is is mogelijk om bestanden te zipen zonder installatie van extra software (ik heb het getest). De oplossing is:
Voer dit uit in een opdrachtregelvenster om een ZIP-bestand met de naam C:\someArchive.zip
te maken dat alle bestanden in de map C:\test3
bevat:
CScript zip.vbs C:\test3 C:\someArchive.zip
Waar het bestand zip.vbs
bevat:
' Get command-line arguments.
Set objArgs = WScript.Arguments
Set FS = CreateObject("Scripting.FileSystemObject")
InputFolder = FS.GetAbsolutePathName(objArgs(0))
ZipFile = FS.GetAbsolutePathName(objArgs(1))
' Create an 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
heb ik het niet getest op paden en bestandsnamen die spaties bevatten. Het kan werken als aanhalingstekens rond de opdrachtregelparameters worden gezet.
Hoe het werkt: de ingebouwde zip-functionaliteit in Windows (Windows XP en later?) wordt belicht via COM interfaces van de Windows-shell, explorer.exe - dat is het “Shell.Application” gedeelte. Deze COM-interface kan worden gebruikt vanuit een VBScript -script, omdat een dergelijk script toegang heeft tot COM-onderdelen. Om het script volledig autonoom te maken, maakt het een leeg ZIP-bestand om aan de slag te gaan (men kan ook een leeg ZIP-bestand maken en dit samen met het VBScript-script naar het doelsysteem kopiëren).
VBScript is standaard geïnstalleerd in elke desktopversie van Microsoft Windows sinds Windows 98.
CScript.exe
maakt deel uit van Windows Script Host . Windows Script Host wordt standaard gedistribueerd en geïnstalleerd op Windows 98 en latere versies van Windows. Het wordt ook geïnstalleerd als Internet Explorer 5 (of een latere versie) is geïnstalleerd.