J'ai un fichier de commandes qui génère un fichier texte. Je pensais que ce serait bien si je pouvais le télécharger aussi.
Cela sera utilisé dans un environnement incontrôlé. Par conséquent, je ne peux pas présumer de la présence de logiciels tiers tels que 7-Zip , etc. Cette fonctionnalité doit utiliser la fonctionnalité désormais intégrée de Windows pour compresser les fichiers.
windows
command-line
batch
zip
Aaron Bush
la source
la source
powershell.exe Compress-Archive file-to-zip.txt zippedfile.zip
(ça marche aussi avec le dossier)Réponses:
Voici une solution tout fichier batch (une variante de mon autre réponse) qui va compresser un fichier nommé
c:\ue_english.txt
et le mettre dansC:\someArchive.zip
:Un accès en écriture est requis pour le parent du dossier stocké dans
TEMPDIR
. Comme ce n'est souvent pas le cas, ilTEMPDIR
peut être nécessaire de modifier la racine du lecteur C.Un accès en écriture est également requis pour le dossier dans
.bat
lequel se trouve le script (car il y génère un fichier).Veuillez également noter que l'extension du fichier compressé doit être
.zip
. Toute tentative d'utilisation d'une autre extension peut entraîner une erreur de script. Au lieu de cela, générez le.zip
fichier et renommez-le.la source
write-zip
applet de commande pouvant être téléchargée à partir de Pscx .TEMPDIR
? Je pense que votre intention est d’envelopper le fichierFILETOZIP
dans un dossier, non?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 dossierC:\test3
:Où le fichier
zip.vbs
contient: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é.la source
Si vous êtes prêt à utiliser PowerShell , les fonctionnalités zip sont disponibles dans .NET 2.0 (PowerShell est .NET). Voici un exemple ( source ) crédit à Mike Hodnick :
la source
Vous pouvez éliminer le risque de dépassement du délai imparti lors de la compression en recherchant l'existence de la fenêtre de dialogue de compression. Cette méthode gère également l’annulation par l’utilisateur de la fenêtre de compression.
la source
.Sleep(whatever)
"me rendent malade.Si vous parvenez à installer les outils du kit de ressources , vous trouverez un outil de ligne de commande appelé COMPRESS pouvant créer des fichiers d’archives compressés tels que zip.
la source
la source
objShell.NameSpace( ZipFile ).Items.Count
dans la boucle, il reste toujours 0 même si le fichier zip est créé et qu’il contient le contenu attendu ...Plusieurs fichiers / répertoires avec code simplifié.
fichier zip.vbs
la source
Ceci est une mutation de la réponse acceptée. Je fais une tonne de tâches d'automatisation sur des milliers de fichiers à la fois, je ne peux donc pas dormir pendant 2 secondes sans m'en soucier. J'ai glané la solution de contournement ici , qui est également similaire à la réponse de Jiří Kočara ici .
Cela entraînera un ping du dossier de destination toutes les 200 ms, ce qui correspond à peu près aussi rapidement que Microsoft le dit pour vérifier les mises à jour de FS.
la source
Voici ma tentative pour résumer les fenêtres de fonctionnalités intégrées pour la compression et la décompression - https://stackoverflow.com/questions/28043589/how-can-i-compres-zip-and-uncopress-unzip-files-and-folders -with-batch-f
avec quelques solutions données qui devraient fonctionner sur presque toutes les machines Windows.
En ce qui concerne shell.application et WSH, j’ai préféré le jScript, car il autorise un fichier batch / jScript hybride (avec l’extension .bat) qui ne nécessite pas de fichiers temporaires. .
la source
Si vous utilisez Windows 8 ou Windows Server 2012, vous aurez PowerShell et .NET 4.5 pour pouvoir le faire:
zip.ps1 (utilisation :)
-directory <directory to zip up> -name <zip name>
:zip.bat (si vous avez besoin d'un assistant pour appeler PowerShell, le répertoire est le premier argument et le nom du zip en second):
la source
Windows 10 build 17063 ou version ultérieure est fourni avec tar.exe, qui est capable de fonctionner avec zip à partir de la ligne de commande.
ou créer des archives
la source
La ligne de commande Windows fournit maintenant la commande compacte qui, pour autant que je sache, est native de Windows. Cela devrait répondre aux exigences demandées à moins que je manque quelque chose.
la source
compact
existe depuis XP et est un outil pour gérer la compression NTFS