E’ è possibile zippare i file senza installare alcun software aggiuntivo (l'ho testato). La soluzione è:
Esegui questo in una finestra a riga di comando per creare un file ZIP denominato C:\someArchive.zip
contenente tutti i file nella cartella C:\test3
:
CScript zip.vbs C:\test3 C:\someArchive.zip
dove il file zip.vbs
contiene:
' 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
Non l'ho testato per i percorsi e i nomi dei file contenenti spazi. Può funzionare se si mettono le virgolette intorno ai parametri della riga di comando.
Come funziona: la funzionalità zip integrata in Windows (Windows XP e successivi?) è esposta attraverso le interfacce COM dalla shell di Windows, explorer.exe - che è la parte “Shell.Application”. Questa interfaccia COM può essere usata da uno script VBScript perché tale script può accedere ai componenti COM. Per rendere lo script completamente autonomo crea un file ZIP vuoto per iniziare (si potrebbe anche creare un file ZIP vuoto e copiarlo nel sistema di destinazione insieme allo script VBScript).
VBScript è stato installato di default in ogni versione desktop di Microsoft Windows a partire da Windows 98.
CScript.exe
fa parte di Windows Script Host . Windows Script Host è distribuito e installato di default su Windows 98 e versioni successive di Windows. Viene installato anche se è installato Internet Explorer 5 (o una versione successiva).