Pouvez Windows intégré de compression ZIP dans un script?
Est la compression au format ZIP qui est intégré à Windows XP/Vista/2003/2008 en mesure d'être scripté à tous? Quel exécutable aurais-je l'appeler à partir d'une chauve-souris/CMD fichier? ou est-il possible de le faire avec VBScript?
Je me rends compte que c'est possible en utilisant WinZip, 7-Zip et d'autres applications externes, mais je suis à la recherche de quelque chose qui ne nécessite pas d'applications externes à être installé.
- Il existe différents VBScript implémentations disponibles sur Google, par exemple, "Zip et Décompressez les Fichiers à l'Aide de l'interpréteur de commandes Windows (XP, Vista, 2003 et 2008) et VBScript". Je suis ne l'ai pas testé, mais il est plus probable qu'ils seulement 'zip', de ne pas compresser.
- quelle est la distinction que vous dessinez entre le zip et de le compresser?
- Vous pouvez 'zip' fichiers dans un seul fichier sans les comprimer, à l'instar de " tar " pour unix. Cela vous permet de distribuer les fichiers comme un paquet, mais ne pas réduire leur taille de l'espace disque.
- ses plus probable qu'ils seulement 'zip', de ne pas compresser. Non, ce n'est pas juste. Le script il crée un fichier zip, avec compression des entrées.
Vous devez vous connecter pour publier un commentaire.
Il y a VBA méthodes pour zip et décompressez à l'aide de la windows intégré à la compression, ce qui devrait donner un aperçu de la façon dont le système fonctionne. Vous pouvez être en mesure de construire ces méthodes dans un langage de script de votre choix.
Le principe de base est que dans windows, vous pouvez traiter un fichier zip dans un répertoire, et copiez-le dans et hors de lui. Ainsi, pour créer un nouveau fichier zip, il vous suffit de faire un fichier avec l'extension
.zip
qui a le droit d'en-tête est vide de fichier zip. Ensuite, vous fermez, et de dire à windows que vous souhaitez copier des fichiers dedans comme si c'était un autre répertoire.Décompression est plus facile - il suffit de le traiter comme un répertoire.
Dans le cas où les pages web sont encore perdu, voici quelques extraits de code pertinentes:
ZIP
DÉCOMPRESSER
Oui, cela peut être scripté avec VBScript. Par exemple, le code suivant peut créer une archive zip à partir d'un répertoire:
Vous pouvez également trouver http://www.naterice.com/blog/template_permalink.asp?id=64 utile car il inclut une pleine Unzip Zip de mise en œuvre dans VBScript.
Si vous effectuez une vérification de la taille de toutes les 500 ms plutôt que d'un élément de comte, il fonctionne mieux pour les gros fichiers. Win 7 écrit le fichier instantanément bien que ce n'est pas terminé la compression:
Fonctionne très bien pour les énormes quantités de fichiers journaux.
Juste pour plus de clarté: GZip n'est pas un MS-seulement l'algorithme tel que suggéré par Guy Starbuck dans son commentaire à partir d'août.
Le GZipStream dans le Système.IO.Compression utilise l'algorithme Deflate, tout de même que la bibliothèque zlib, et de nombreux autres zip outils. Cette classe est entièrement interopérable avec les utilitaires unix comme gzip.
La GZipStream classe n'est pas scriptable de la ligne de commande, ou VBScript, pour produire des fichiers ZIP, de sorte qu'il ne saurait à lui seul constituer une réponse à l'affiche originale de la demande.
La libre DotNetZip bibliothèque n'lire et produire des fichiers zip, et peuvent être envoyés à partir de VBScript ou Powershell. Il comprend également des outils de ligne de commande pour produire et lire/extraire des fichiers zip.
Voici un code VBScript:
Voici un code pour Powershell:
Dans un .bat ou .cmd fichier, vous pouvez utiliser le zipit.exe ou unzip.exe outils. Par exemple:
Ici a ma tentative de résumer des fonctions intégrées de windows pour la compression et décompression - Comment puis-je compresser (zip ) et décompresser (/unzip ) des fichiers et des dossiers avec le fichier de commandes sans l'aide de tous les outils externes?
avec un peu donné des solutions qui devrait fonctionner sur presque toutes les machines windows.
En ce qui concerne la shell.application et WSH j'ai préféré le jscript
comme il permet à un hybride de lot/fichier jscript (avec .extension bat) ne nécessitant pas de fichiers temporaires.J'ai mis unzip zip et capacités dans un fichier plus un peu plus de fonctionnalités.
Il y a deux zip et décompressez les fichiers exécutables (ainsi qu'une charge de bateau de d'autres applications utiles) dans le UnxUtils package disponible sur SourceForge (http://sourceforge.net/projects/unxutils). Les copier vers un emplacement dans votre CHEMIN d'accès, telles que "c:\windows" et vous serez en mesure de les inclure dans vos scripts.
Ce n'est pas la solution idéale (ou de celui que vous avez demandé), mais un travail décent-un-tour.
pour créer une archive compressée, vous pouvez utiliser l'utilitaire MAKECAB.EXE