2011-03-16 4 views
1

J'ai un fichier .bat qui exécute 7-zip pour compresser tous les fichiers dans un répertoire. La taille des fichiers va de 1mb à 500mb et il y a 10 fichiers. Toutes les 15 minutes, un programme de sauvegarde planifié écrase 5 des 10 fichiers. Ces 5 fichiers sont généralement les plus petits et les plus rapides à compresser, mais 7-zip commence par le fichier le plus volumineux d'abord, manquant donc les 5 fichiers dans les 15 minutes. Comment puis-je obtenir 7-zip pour commencer avec le plus petit fichier en premier. Toute aide serait très appréciée.lot utilisant 7-zip: compresser le plus petit fichier en premier au plus gros fichier

c: 
cd "\Program Files\7-Zip" 
7z a C:\WEBDATA C:\FILE1.BAK C:\FILE2.BAK C:\FILE3 C:\FILE4 C:\FILE5 etc... 

Répondre

0

Si tous les fichiers sont dans le même répertoire, vous pouvez utiliser la fonction de tri de la commande dir pour ajouter des fichiers à l'archive un à la fois.

Par exemple, si les fichiers à sauvegarder sont dans un sous-répertoire appelé « fichiers »:

for /f %%N in ('"dir /A-D /O:S /B files"') do (
    7z a backup.7z files/%%N 
) 

D'après votre description cela devrait être suffisant, mais si les fichiers sont à divers endroits, vous devrez peut-être obtenir un amateur. Je ne l'ai pas essayé moi-même, mais je m'attendrais à ce que vous puissiez parcourir une liste de répertoires, en écrivant chaque taille/nom de fichier dans un fichier temporaire, puis en utilisant la commande sort sur ce fichier.

Questions connexes