Votre question

Batch synchronisation clé USB / HDD

Tags :
  • Programmation
Dernière réponse : dans Programmation
31 Janvier 2010 19:38:34

Bonjour à tous!

J'ai récemment eu l'idée de me créer un petit fichier .bat qui aurait pour but de synchroniser les éléments de ma clé USB avec ceux de mon disque dur.

Pour être plus précis, voici un exemple:

Sur ma clé, il y a un dossier Musique et un dossier Stage
Lorsque je lance le batch, je voudrai avoir le choix du dossier a synchroniser avec le HDD (donc, c'est a l'utilisateur de saisir le nom du dossier)

j'ai fais ceci :

@echo Assistant de synchronisation des elements du dossier Stage du disque E:\ sur le bureau de votre ordinateur.
@echo.
@echo * Remarque: Les elements deja presents sur le bureau ne seront pas copies.*
@echo off
echo.

pause

@echo off
@echo.
@echo voici le contenu de la cle USB:
@echo.

dir E:

@echo off
@echo.
@echo Pour confirmer la synchronisation, appuyez sur une touche...
@echo off
@echo.
pause
@echo off
@echo.
@echo Copie des fichiers en cours...
@echo.
xcopy E:\Stage C:\Users\Tib\Desktop /d /e /h /y
@echo.
@echo Les elements ont bien ete copies vers le bureau.
@echo.
@echo Le programme va maintenant synchroniser les elements du bureau sur la cle USB
@echo.
pause
@echo.
xcopy C:\Users\Tib\Desktop E:\Stage /d /e /h /y
@echo.
@echo Synchronisation terminee

@echo.
@echo off
pause


La c'est "en dur" comme on dit. Problème, il ne synchronise qu'un dossier spécifique (ici, Stage)

J'ai donc comme idée de faire la commande DIR E: au début afin de lister les dossiers de facon a ce qu'ils soient visibles par l'utilisateur, et ensuite de faire un "choice" ou un "set" avec des IF, etc...

Pourriez vous m'éclairer la dessus, je galère depuis hier :) 

Merci d'avance!

Tib

Autres pages sur : batch synchronisation cle usb hdd

31 Janvier 2010 22:04:39

Salut,

Déjà met un @echo off au début, et enlève tout ces @ à chaque lignes ;) 

Ensuite pour faire un menu choix rien de plus simple.
Tu stokes dans une variables le choix et tu le repercute sur xcopy.


set /p menu=Donner le chemin du fichier taper entree :
xcopy "E:\%menu%" C:\Users\Tib\Desktop /d /e /h /y

Demandes des précisions, au cas ou j'aurais mal compris.

@+
m
0
l
31 Janvier 2010 22:50:07

Merci de ton attention :) 

Voila je te postes le script largement modifié:

echo off
echo Assistant de synchronisation avec un périphérique externe
echo.
echo Remarque: Les elements deja presents ne seront pas copies
echo.
set /p ldisk=Quelle est la lettre du peripherique a synchroniser?
set /p destination=Quelle est la lettre de la partition de destination?
echo Le peripherique selectionne est %ldisk%:
echo La partition de destination est %destination%:
echo Pour lister le contenu du périphérique %ldisk%, appuyez sur une touche...
echo.
pause
echo.
dir %ldisk%:
echo off
echo.
set /p dossier=Quel dossier voulez vous synchroniser?
echo Vous avez choisi de synchroniser le dossier %dossier%
if not exist %destination%:\%dossier%
(mkdir %dossier%
xcopy %ldisk%:\%dossier% %destination%:\%dossier% /d /e /h /y)
else
(xcopy %ldisk%:\%dossier% %destination%:\%dossier% /d /e /h /y)
echo.
xcopy %destination%:\%dossier% %ldisk%:\%dossier% /d /e /h /y
echo.
echo Synchronisation Terminee avec succes.



J'ai remarqué un problème au niveau du "else" (non reconnu) et il me dit aussi que le nombre de parametres est incorrect...

Merci
m
0
l
Contenus similaires
1 Février 2010 16:45:47

Salut,
Else n'est pas une commande batch ;) 

Remplace le par

if exist %destination%:\%dossier% (
xcopy %ldisk%:\%dossier% %destination%:\%dossier% /d /e /h /y
)

if not exist %destination%:\%dossier% (
mkdir %dossier% => Attention au dossier courant du batch !
xcopy %ldisk%:\%dossier% %destination%:\%dossier% /d /e /h /y
)

xcopy %destination%:\%dossier% %ldisk%:\%dossier% /d /e /h /y
echo.
echo Synchronisation Terminee avec succes.
.

J'espère que c'est bien ce que tu voulais, j'ai juste corriger la syntaxe et l'ordre des conditions (pour être plus logique.)
@+
m
0
l
a b L Programmation
1 Février 2010 20:01:30

Si, le ELSE existe :p  mais il doit suivre la parenthèse fermante. La meilleure façon de l'écrire:
  1. IF condition (
  2. actions1
  3. ) ELSE (
  4. actions2
  5. )

m
0
l
1 Février 2010 21:08:35

Salut CRicky,

Ravi d'avoir appris quelque chose alors, je ne connaissais pas l'emploi subtil du Else en batch ;) 

@+

m
0
l
3 Février 2010 00:10:16

Bonsoir!
Au final j'ai résolu le PB ;)  je poste le script pour ceux que ca intéresserait :) 

@echo off
echo Assistant de synchronisation avec un peripherique externe
echo.
echo Remarque: Les elements deja presents ne seront pas copies
echo.
set /p ldisk=Quelle est la lettre du disque d'origine?
set /p destination=Quelle est la lettre du disque de destination?
echo.
echo Le peripherique selectionne est %ldisk%:
echo La partition de destination est %destination%:
echo.
echo Pour lister le contenu du peripherique %ldisk%, appuyez sur une touche...
echo.
pause>nul
echo.
dir %ldisk%:
echo off
echo.
set /p dossier=Quel dossier voulez vous synchroniser?
echo Vous avez choisi de synchroniser le dossier %dossier%, pour valider, appuyez sur une touche...
echo.
pause>nul
echo.
if not exist %destination%:\%dossier% (
mkdir %destination%:\%dossier%
xcopy %ldisk%:\%dossier% %destination%:\%dossier% /d /e /h /y
) else (
xcopy %ldisk%:\%dossier% %destination%:\%dossier% /d /e /h /y
)
echo.
xcopy %destination%:\%dossier% %ldisk%:\%dossier% /d /e /h /y
echo.
echo Synchronisation Terminee avec succes le %date% a %time%
echo.
echo Tib and Ljnk co-op - 2010 ©
echo.
echo Fin du programme, appuyez sur une touche pour quitter...
pause>nul

Bonne soirée !
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS