1 votes

7-Zip: Créez un fichier zip à partir d'un sous-répertoire, avec le même nom que le sous-répertoire lui-même

J'ai une situation unique où j'ai besoin de la structure de dossier suivante (Windows)

X:\LOGS\PRIMARY\YEARMONTHDAY

par exemple,

X:\LOGS\HS\20121010

Les dossiers sont créés tous les matins.

Essentiellement, je voudrais compresser le contenu du sous-répertoire de la date et le placer dans ce répertoire. Dois-je le faire avec 7z ou avec 'FORFILES'?

0voto

Narendra Points 21

Si je comprends bien, vous souhaitez prendre un dossier spécifique créé dans un format YYYYMMDD et zippez son contenu. Le fichier zip généré doit également être placé dans ce dossier.

À un niveau très basique, vous pouvez accomplir cela avec une commande comme celle-ci

"c:\Program Files\7-Zip\7z.exe" a x:\Logs\HS\20121010\20121010.zip X:\Logs\HS\20121010\*

NOTE: 7-zip doit être installé pour utiliser la commande ci-dessus

Avec la commande ci-dessus, vous devriez remplir manuellement le YYYYMMDD à chaque fois que vous souhaitez zippé un nouveau dossier avec une nouvelle date.

Cela peut être poussé un peu plus loin et vous pouvez modifier la commande pour utiliser le YYYYMMDD actuel pour la date d'aujourd'hui. La clé de cela est d'utiliser la variable %date% en DOS. Vous pouvez lire plus d'informations sur cette variable en tapant set /?. Pour formater la date en YYYYMMDD, nous devrons prendre une sous-chaîne de la variable %date% comme ceci:

echo %date:~10,4%%date:~4,2%%date:~7,2%

La commande ci-dessus devrait afficher la date en YYYYMMDD.

Enfin, nous pouvons combiner ces deux commandes pour générer une commande d'une seule ligne qui zippé tous les fichiers dans le répertoire avec la date d'aujourd'hui (au format YYYMMDD).

"c:\Program Files\7-Zip\7z.exe" a x:\Logs\HS\%date:~10,4%%date:~4,2%%date:~7,2%\%date:~10,4%%date:~4,2%%date:~7,2%.zip X:\Logs\HS\%date:~10,4%%date:~4,2%%date:~7,2%\*

Une étape supplémentaire peut être prise pour automatiser cela en ajoutant la commande ci-dessus en tant que tâche planifiée dans Windows.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X