Décompressez la ligne de commande pour synchroniser le dossier de destination

4

Est-il possible de décompresser un fichier .zip dans un dossier et de synchroniser le contenu de ce dossier avec le contenu du fichier .zip?

Je sais que vous pouvez utiliser l'option -u (pdate) pour mettre à jour le dossier avec les fichiers les plus récents, mais cela ne suffit pas. J'en ai besoin pour effectuer une synchronisation réelle (supprimer les fichiers non présents dans le fichier .zip et mettre à jour les fichiers plus récents).

Il doit aussi être rapide, car je synchroniserai de grands fichiers .zips. Ainsi, un effacement et un nettoyage en mode minimal n'est pas une option.

Je suis ouvert à tout outil qui fera le travail. Mais cela doit fonctionner sans surveillance depuis la ligne de commande.

fasteddo
la source

Réponses:

0

WinZip a un module complémentaire de prise en charge de la ligne de commande nommé WZUNZIP.EXEavec l'option suivante, qui peut être utilisé en combinaison avec son -eargument lors de l'extraction:

-n - Décompressez uniquement les fichiers les plus récents. Cette option met à jour les fichiers existants si le fichier archivé est plus récent et en crée de nouveaux s'ils n'existent pas déjà.

martineau
la source
Oui, cela ressemble à l’option unzip.exe -u. Il met uniquement à jour, il ne fait pas une synchronisation complète. J'en ai besoin pour supprimer des fichiers du dossier s'ils n'existent pas dans le fichier .zip.
fasteddo
Découvrez SynchronEX .
martineau
Ouah merci. SynchronEX semble correspondre à la facture. Cependant, pour ce projet, j'ai besoin de quelque chose de gratuit. Désolé de ne pas l'avoir mentionné dans le post original. Cela ne me dérange pas de marquer comme réponse si c'est la seule option.
fasteddo
@fasteddo: Désolé, je ne suis au courant de rien de gratuit pour le moment. Par exemple, vous pourriez probablement utiliser votre propre langage (gratuit) Python, qui prend en charge les fichiers .zip intégrés. Toutefois, à seulement 20 USD, SynchronEX semble être une bonne affaire.
martineau
Ya, ce n'est pas l'argent, c'est la nature du projet. Merci pour vos suggestions!
fasteddo
0

J'ai cherché quelque chose qui avait cette capacité pendant un certain temps moi-même. L'utilitaire Info-ZIP est gratuit, basé sur la ligne de commande et dispose d'un commutateur -FS qui supprimera les fichiers de l'archive qui n'existent plus dans le dossier source en plus de la mise à jour des fichiers plus récents. Synchronisation de fichiers ZIP IE. http://www.info-zip.org/ Remarque: Le seul problème que je rencontre avec cet utilitaire est qu'il n'existe aucune possibilité de spécifier explicitement le dossier source dans les arguments de la ligne de commande. Il utilise le répertoire de travail actuel comme source. Ainsi, dans un script, vous utiliseriez la commande CD pour accéder d'abord au répertoire source, puis pour lancer la commande ZIP. Par exemple:

CD /D D:\Program Settings\Favorites
zip -FS -r -9 -b %Temp% -q -ds 0 "D:\Backup\Favorites.zip" .
utilisateur134058
la source
1
Malheureusement, cela fait exactement le contraire de la question posée. Et il ne semble pas y avoir de commutateur approprié pour avoir un zip en tant que source et un dossier en tant que destination. :-(
Hans-Peter Störr