Es ist möglich, Dateien ohne Installation zusätzlicher Software zu zippen (ich habe es getestet). Die Lösung ist:
Führen Sie dies in einem Befehlszeilenfenster aus, um eine ZIP-Datei namens C:\someArchive.zip
zu erstellen, die alle Dateien im Ordner C:\test3
enthält:
CScript zip.vbs C:\test3 C:\someArchive.zip
Wo die Datei zip.vbs
enthält:
' 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
Ich habe es nicht auf Pfade und Dateinamen mit Leerzeichen getestet. Es kann funktionieren, wenn die Befehlszeilenparameter in Anführungszeichen gesetzt werden.
Wie es funktioniert: Die eingebaute Zip-Funktionalität in Windows (Windows XP und höher?) wird über COM -Schnittstellen aus der Windows-Shell, explorer.exe - das ist der “Shell.Application”-Teil. Diese COM-Schnittstelle kann von einem VBScript -Skript aus verwendet werden, da ein solches Skript auf COM-Komponenten zugreifen kann. Um das Skript vollständig in sich abgeschlossen zu machen, erstellt es eine leere ZIP-Datei für den Anfang (man könnte auch eine leere ZIP-Datei erstellen und sie zusammen mit dem VBScript-Skript auf das Zielsystem kopieren).
VBScript ist seit Windows 98 standardmäßig in jeder Desktop-Version von Microsoft Windows installiert.
CScript.exe
ist Teil von Windows Script Host . Windows Script Host wird standardmäßig in Windows 98 und späteren Versionen von Windows verteilt und installiert. Er wird auch installiert, wenn Internet Explorer 5 (oder eine spätere Version) installiert ist.