Il est possible de zipper des fichiers sans installer de logiciel supplémentaire (je l'ai testé). La solution est la suivante :
Exécuter ceci dans une fenêtre de ligne de commande pour créer un fichier ZIP nommé C:\someArchive.zip
contenant tous les fichiers du dossier C:\test3
:
CScript zip.vbs C:\test3 C:\someArchive.zip
Où le fichier zip.vbs
contient :
' 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
Je n'ai pas testé les chemins d'accès et les noms de fichiers contenant des espaces. Cela peut fonctionner si des guillemets sont placés autour des paramètres de la ligne de commande.
Comment ça marche : la fonctionnalité zip intégrée dans Windows (Windows XP et ultérieur ?) est exposée à travers les interfaces COM du shell Windows, explorer.exe - c'est-à-dire la partie “Shell.Application”. Cette interface COM peut être utilisée à partir d'un script VBScript car un tel script peut accéder aux composants COM. Pour que le script soit totalement autonome, il crée un fichier ZIP vide pour démarrer (on peut aussi créer un fichier ZIP vide et le copier sur le système cible avec le script VBScript).
VBScript a été installé par défaut dans chaque version de Microsoft Windows depuis Windows 98.
CScript.exe
fait partie de Windows Script Host . Windows Script Host est distribué et installé par défaut sur Windows 98 et les versions ultérieures de Windows. Il est également installé si Internet Explorer 5 (ou une version ultérieure) est installé.