Lot de fichiers à compresser les sous-répertoires
Je suis en train d'écrire un script batch qui va s'exécuter automatiquement la compression des sous-répertoires à l'aide de winrar ou 7-zip:
Exemple:
My Pictures
Pics1 (Pics1.zip)
File1.jpg
File2.jpg
File3.jpg
Pics2 (Pics2.zip)
File4.jpg
File5.jpg
Pics3 (Pics3.zip)
File6.jpg
File7.jpg
...
Comment puis-je écrire le script.
OriginalL'auteur | 2013-12-26
Vous devez vous connecter pour publier un commentaire.
(1) À L'Aide De WinRAR:
WinRAR
comprend deux outils en ligne de commande,rar.exe and unrar.exe
, où rar.exe compresse et unrar.exe décompresse les fichiers.Les deux sont situés dans la
C:\Program Files\WinRAR
dossier dans la version installable.En supposant que, s'il y a plusieurs sous-dossiers
C:\MyPictures
et vous voulez que chaque sous-dossier pour obtenir son propre .rar fichier , dans le dossier parent.Partir d'un fichier batch, ce qui fonctionne pour vous:
Explication....
Il va créer .rar fichiers de tous les dossiers/sous-dossiers de parent
dossier C:\MyPictures dans le même dossier parent.
Ensuite, il va supprimer tous les originaux des dossiers/sous-dossiers de parent
dossier C:\MyPictures et ainsi, vous serez laissé seul avec les archives
à la même place.
“une” commande permet d'ajouter à l'archive
“-r” commutateur parcourt les sous-dossiers
“-u” de l'interrupteur. L'équivalent du “u” de la commande lorsqu'il est combiné avec la “une”
commande. Ajoute de nouveaux fichiers et les mises à jour des anciennes versions de fichiers
déjà dans l'archive
“-df” commutateur supprime les fichiers une fois qu'ils sont déplacés vers l'archive
Si vous souhaitez conserver l'original des sous-dossiers, il suffit de retirer le
-df switch
.(2) À L'Aide De 7-Zip:
7-Zip
est un archiveur de fichiers avec un taux de compression élevé.7z.exe
est la ligne de commande version de 7-Zip.7-Zip n'utilise pas le système générique de l'analyseur et elle ne suit pas les archaïques de la règle par laquelle . signifie n'importe quel fichier. 7-Zip traite . en tant que correspondant au nom de n'importe quel fichier qui a une extension.
Pour traiter tous les fichiers, vous devez utiliser un caractère générique*.
À l'aide de 7zip options de ligne de commande dans un fichier de commandes, ci-dessous fonctionne pour vous:
Où
-une archive ou d'ajouter
-t Type de l'archive
OriginalL'auteur Sunny
Voici comment le faire en 7-zip.
Supposons vos fichiers sont dans le dossier
C:\Pictures\
. Ensuite, vous pouvez utiliser la commande de traitement par lots pour créer de multiples archives avec le même nom que votre répertoires.Cela compresse chaque dossier dans le répertoire
Pictures
. Changementc:\Pictures
vers le répertoire contenant vos dossiers. Si 7-zip est installé dans un autre répertoire, changer la"c:\Program Files\7-Zip\7z.exe"
à un répertoire où 7-zip est installé.OriginalL'auteur Kidus
Vous remercier pour l'excellent script, j'ai juste eu 3 problèmes/changements - les noms de répertoire avec l'espace de nom n'ont pas de travail, je voulais juste de sauvegarde de niveau 1 sous-répertoires et je voulais pack tous les sous-répertoires dans le répertoire courant (c'est super rapide pour la sauvegarde de tous les sous-répertoires séparément). Voici la modification si vous avez besoin de quelque chose de similaire:
OriginalL'auteur Michal Pokluda
Une autre approche si vous avez besoin de de manière récursive zip des fichiers dans tous les sous-dossiers dans windows est d'utiliser gitbash et l'approche décrite ici:
find * -type d ! -empty -execdir sh -c 'cd "$1" && 7z a "$1".7z -x!*/&& cd -' sh {} \;
Ce sera:
Vous pouvez également exclure des types spécifiques avec:
OriginalL'auteur Alex