Que es posible comprimir archivos sin necesidad de instalar ningún software adicional (he probado). La solucion es:
Ejecute esto en una ventana de línea de comandos para crear un archivo ZIP llamado que C:\someArchive.zip
contenga todos los archivos en la carpeta C:\test3
:
CScript zip.vbs C:\test3 C:\someArchive.zip
Donde el archivo 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
No lo he probado para rutas y nombres de archivos que contienen espacios. Puede funcionar si las comillas se colocan alrededor de los parámetros de la línea de comando.
Cómo funciona: la funcionalidad zip incorporada en Windows (Windows XP y posterior) se expone a través de las interfaces COM desde el shell de Windows, explorer.exe, que es la parte "Shell.Application". Esta interfaz COM se puede usar desde un script VBScript porque dicho script puede acceder a los componentes COM. Para hacer que el script sea completamente autónomo, crea un archivo ZIP vacío para comenzar (también se podría crear un archivo ZIP vacío y copiarlo al sistema de destino junto con el script VBScript).
VBScript se ha instalado de manera predeterminada en cada versión de escritorio de Microsoft Windows desde Windows 98.
CScript.exe
es parte de Windows Script Host . Windows Script Host se distribuye e instala de manera predeterminada en Windows 98 y versiones posteriores de Windows. También se instala si está instalado Internet Explorer 5 (o una versión posterior).