commande externe de copie, déplacement, sauvegarde, etc

Vous avez réalisé un script utile, faites en profiter la communauté !

Modérateur : WIN32-[GG]

Répondre
Cmanix
Batcheur débutant
Messages : 15
Enregistré le : 11 juil. 2011 15:20

commande externe de copie, déplacement, sauvegarde, etc

Message par Cmanix »

Compatibilité:
-Développé sous windows 7
-à vérifier sous vista, 2003.
-version 1.a.0000 testé et validé pour XP.
-version 1.h.0000 validé en mode copie sur 2003 serveur.

Présentation:

-mode copie/deplacement:
Cette commande externe de copie/déplacement d'arborescence de dossier propose des options de copie en mode synchronisation, c'est à dire qu'elle remplace les fichiers existants que si la source est différente ou plus récente que le fichier de destination. Il est possible d'afficher une progression par fichier en plus de la progression générale.

-mode sauvegarde:
Le mode sauvegarde vous permet de faire des sauvegarde de dossier complète puis incrémentielle ou différentielle. Vous pouvez supprimer automatiquement les dossiers d'archive en fonction de leur ancienneté ou faire en sorte d'avoir une seul archive. Vous pouvez générer des rapports et des log détaillé d'erreur et même les envoyer par e-mail. Fonctionne en local et SMB.

-mode conversion/redimensionnement/compression d'images (prochainement disponible):
Ce mode permet de traiter des dossiers contenant des images pour les formater en fonction de vos besoins. Il est possible de configurer les dimensions max en pixel, la taille max en Ko, l’extension de sortie pour la conversion, choisir les extensions d'image traité, appliqué un filtre sur le chemin complet du fichier.

-autre:
Il est possible de personnaliser l'affichage dans la fenêtre et dans la barre de titre via plusieurs modes prédéfini (mais facilement modifiable dans le code si vous souhaitez un autre style d'affichage) et de modifier la taille de la barre de pourcentage. On peut générer des rapport et des log d'erreur personnalisable; envoyer des mails contenant un fichier spécifique ou les rapports générés; gérer des fichiers caché, appliquer des filtres; configurer un message windows en fin d'instance;...

A savoir:
-Le pourcentage et donc la barre d'avancement sont calculés sur la taille des fichiers et ignore les fichiers de moins de 1ko.
-Il est préférable d'utiliser cette commande que pour la copie des dossiers, vous pouvez qd même copier un seul fichier en indiquant le nom du fichier complet dans le paramètre filtre.
-La commande ne prend pas en charge les caractères suivant dans les nom de dossier/fichiers: "!" .
-syntaxe de commande à utiliser dans vos batch=[cmd.exe /C ""cp.bat" "src" "dst" parametres"]
-il faut placer le batch dans le dossier %windir% pour faire une mise à jour et de ne pas oublier de changer la variable %nom_bat% si vous renommez le batch.

Mises à jours/historique:
[21/06/11] -version- 1.a.0000
[30/06/11] -version- 1.d.0000 :
-mode purge -> possibilité de faire une copie/synchronisation en miroir.
-Affichage dans le rapport de la durée de copie au format: HH Heure MM Minute SS Seconde CC Centième .
-Possibilité d'afficher une progress_bar par fichier (uniquement via fenêtre différente) et activable selon une taille de fichier minimum.
[07/07/11] -version- 1.f.0000 :
-possibilité de gérer les fichiers cachés.
-possibilité d'afficher une progressbar par fichier directement dans la fenêtre batch ! (commande externe robocopy.exe requise:Version 1.96 optimisé pour ce batch).
[15/07/11] -version- 1.g.0003 :
-possibilité de sauvegarder un dossier de manière incrémentielle(création de dossier de sauvegarde complète puis dossier de sauvegarde incrémentielle pour fichier nouveau ou modifié)
-possibilité d'archiver la sauvegarde au bout de n dossier de sauvegarde existant.
-possibilité de supprimer les archives avant l'archivage.
[18/07/11] -version- 1.h.0000 :
- gestion des fichiers caché compatible en mode sauvegarde.
- mode sauvegarde différentielle (fichier nouveau ou modifié par rapport à la sauvegarde complète, ignore les sauvegardes intermédiaire)
- possibilité de supprimer les dossiers d'archive et de sauvegarde vieux de plus de n jours en fonction de la date de création ou de modification.
- correction de bugs
- Détection de mise à jour dans l'aide (commande [ "cp.bat" /ex ])
[21/07/11] -version- 1.i.0000 :
- possibilité d'envoyer le rapport par mail.
- le comportement de plusieurs fonctions ont été amélioré.
[02/08/11] -version- 1.j.0000 :
- mise a jour automatique du batch via la commande [cp.bat /maj] (le batch doit être dans le dossier %windir% pour que cela fonctionne)
- possibilité d'envoyer un mail avec le contenu d'un fichier (ex:rapport.txt) comme texte du message, peut donc éviter d'envoyer plusieurs mails à la fois.
- ajout d'options diverses
- correction d'un bug pour l'option de purge d'archive sur date de modification.
[09/08/11] -version- 1.k.0000 :
-amélioration du temps de traitement pour les connexion bas débit.
-téléchargement et installation automatique de robocopy si le batch en a besoin et qu'il n'est pas présent.
-autres améliorations mineur.
[23/08/11] -version- 2.a.0000 :
- optimisation de la structure du batch
- correction de bug mineur
- ajout du mode de traitement d'image
- amélioration de la syntaxe des parametres (ancienne syntaxe toujour compatible)
- optimisation conséquente pour le traitement de fichier via dossier réseau.

En projet/développement: (vos idées sont les bienvenue)
-aucun

Image

Téléchargement de la dernière version

Les trois dernières versions:
Modifié en dernier par Cmanix le 24 août 2011 19:23, modifié 60 fois.
Avatar du membre
WIN32-[GG]
SuperBatcher
Messages : 129
Enregistré le : 25 avr. 2011 19:34
Localisation : Dernière porte à droite

Re: commande externe xcopy revisitée.

Message par WIN32-[GG] »

Génial!
Il y a longtemps que je cherchais un truc comme ça!
merci! ;)
WIN32-[GG]
The quieter you become,
the more you are able to ear...
Cmanix
Batcheur débutant
Messages : 15
Enregistré le : 11 juil. 2011 15:20

Re: commande externe de copie, déplacement, sauvegarde, etc

Message par Cmanix »

Voici un exemple de batch de sauvegarde incrémentielle exécuté par une tache planifié:

Code : Tout sélectionner

@echo off
set dst=\\NAS\sauvegarde PC 1
set parametres=--m-3 --w-oui --x-5 --y-oui --r-3
set date_1=%date:~3,7%

title [1/3] Sauvegarde Bureau
cmd.exe /C ""%systemroot%\cp.bat" "%userprofile%\Bureau" "%dst%\Bureau" %parametres% "--b-%dst%\Bureau\Detail erreur.log" "--n-%dst%\Bureau\Rapport %date_1:/=-%.log" "
title [2/3] Sauvegarde Messagerie
cmd.exe /C ""%systemroot%\cp.bat" "C:\Program Files\Outlook Express\donn‚es" "%dst%\Messagerie" %parametres% "--b-%dst%\Messagerie\Detail erreur.log" "--n-%dst%\Messagerie\Rapport %date_1:/=-%.log" "
title [3/3] Sauvegarde Documents
cmd.exe /C ""%systemroot%\cp.bat" "%userprofile%\Mes documents" "%dst%\Documents" %parametres% "--b-%dst%\Documents\Detail erreur.log" "--n-%dst%\Documents\Rapport %date_1:/=-%.log" "
 
le même en plus simple

Code : Tout sélectionner

@echo off

title [1/3] Sauvegarde Bureau
cmd.exe /C ""%systemroot%\cp.bat" "%userprofile%\Bureau" "\\NAS\sauvegarde PC 1\Bureau" --m-3 --w-oui --x-5 --y-oui --r-3 "--b-\\NAS\sauvegarde PC 1\Bureau\Detail erreur.log" "--n-\\NAS\sauvegarde PC 1\Bureau\Rapport %date:/=-%.log" "

title [2/3] Sauvegarde Messagerie
cmd.exe /C ""%systemroot%\cp.bat" "C:\Program Files\Outlook Express\donn‚es" "\\NAS\sauvegarde PC 1\Messagerie" --m-3 --w-oui --x-5 --y-oui --r-3 "--b-\\NAS\sauvegarde PC 1\Messagerie\Detail erreur.log" "--n-\\NAS\sauvegarde PC 1\Messagerie\Rapport %date:/=-%.log" "

title [3/3] Sauvegarde Documents
cmd.exe /C ""%systemroot%\cp.bat" "%userprofile%\Mes documents" "\\NAS\sauvegarde PC 1\Documents" --m-3 --w-oui --x-5 --y-oui --r-3 "--b-\\NAS\sauvegarde PC 1\Documents\Detail erreur.log" "--n-\\NAS\sauvegarde PC 1\Documents\Rapport %date:/=-%.log" "
 
Répondre