J'ai une machine Windows avec une structure de répertoires contenant des fichiers avec une extension particulière. J'ai besoin d'un script qui va ajouter un fichier compressé pour chaque fichier avec cette extension. Est-il possible de faire cela avec 7 Zip (7za.exe)? Si non, y a-t-il d'autres options?
AVANT \ dir1 \ dir2 \ fichier.ext
AFTER \ dir1 \ dir2 \ fichier.ext fichier.zip
Réponses:
Je suggère d'utiliser PowerShell.
Cela suppose que 'zipcommand' est votre outil zip en ligne de commande et qu'il nécessite 3 arguments, un 'pour' pour l'archive, le fichier à archiver et le nom de l'archive.
la source
Ce n'est peut-être pas ce que vous cherchez, mais j'utiliserais Cygwin et l'utilitaire de recherche * nix:
"find" commence à "dir1" et revient, en faisant correspondre tout avec un nom de la forme "* .ext". Il produit une liste de correspondances, dirigée vers "While read i", qui lit chaque ligne (un chemin correspondant) dans la variable "i". Pour chaque valeur différente de i, la commande "zip" est exécutée, comprimant le fichier dans une archive zip du même nom (et du même chemin), mais avec ".zip" ajouté.
Notez que ce qui précède ne supprimera pas le fichier original. J'aurais pu ajouter "rm $ i" après la commande zip pour le faire, mais il est préférable de créer les archives en une étape, puis d'utiliser:
pour rechercher et supprimer les originaux. Une autre bonne chose à faire pour tester votre ligne avant de l'exécuter est de faire écho à la commande, plutôt que de l'exécuter.
Cela vous montrera chacune des commandes zip et rm que cela ferait si vous supprimiez les échos, afin que vous puissiez vous assurer que vous agissez correctement. Ensuite, supprimez les échos pour le faire réellement.
S'il existe un bon moyen de faire cela avec les utilitaires Windows courants, je ne le sais pas.
la source
Vous pouvez utiliser un script VBScript avec un programme zip en ligne de commande décent. Google pour VBScript + FileSystemObject + Recursive pour trouver un script vbscript approprié. Vous pouvez modifier le code pour exécuter l'outil zip de ligne de commande.
la source
Voici un exemple dans Ch , qui intègre des fonctionnalités zip:
Je l'ai écrit sur un système Windows, et cela devrait fonctionner sans aucun problème. Au moins c'est fait ici. Si vous voulez l'essayer, vous pouvez télécharger la version standard de Ch , qui est un freeware. Il suffit de coller le code dans un fichier texte et nommez - le tout .ch. Une fois que vous avez installé Ch, vous pouvez l'exécuter à partir de la ligne de commande.
Edit: Le script ci-dessus compressera tous les fichiers du répertoire spécifié. Pour filtrer les fichiers par extension, modifiez
à
Vous ne faites que modifier les arguments de la commande ls pour votre type de fichier.
la source