Il est possible de compresser des fichiers sans installation de logiciel supplémentaire (je l’ai testé). La solution est:
Exécutez 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 ne l'ai pas testé pour les chemins et les noms de fichiers contenant des espaces. Cela peut fonctionner si des guillemets sont placés autour des paramètres de ligne de commande.
Comment ça marche: la fonctionnalité zip intégrée à Windows (Windows XP et ultérieur?) Est exposée via des interfaces COM à partir 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 complètement autonome, il crée un fichier ZIP vide pour commencer (vous pouvez également 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 bureau de Microsoft Windows depuis Windows 98.
CScript.exe
fait partie de Windows Script Host . Windows Script Host est distribué et installé par défaut sous Windows 98 et les versions ultérieures de Windows. Il est également installé si Internet Explorer 5 (ou une version ultérieure) est installé.