Forum Clubic

Commande msdos pour copier des fichiers

Bonjour.

Voilà je cherche comment mettre en oeuvre un fichier .bat qui lorsque je clique dessus lance la copie de mes dossiers sur un lecteur reseau, mais je ne sais pas comment m’y prendre.
Ce que je veut c’est que lorsque je clique sur la commande sa lance la copie des differents dossiers dont j’aurais mis l’adresse dedans.

Exemple
J’ai un dossier dans c:\user\musiques et un dossier c:\user\desktop\documents.
Je voudrais que lorsque je clique sur le fichier bat sa lance la copie des 2 dossiers (musiques et documents) sur z:\sauvegarde en ecrasant les données exixtente.

Je pense que c’est possible mais je ne sais pas le mettre en forme on va dire.

Merci de votre aide.

Ton fichier batch, c’est un fichier texte dans lequel du décris les commandes à exécuter les unes après les autres
La tu as juste à enchainer deux lignes, identiques, une pour la copie de chaque dossier.

Pour les paramètres de la commande copy, tu ouvres une fenêtre d’exécution et tu tapes Copy /?, tu auras l’aide associée


@echo off
echo Copie en cours
copy C:\user\musiques Z:\sauvegarde\musiques /Y
echo ...
copy C:\user\desktop\documents Z:\sauvegarde\documents /Y
echo Copie terminée
@pause

Edit: @pause pour afficher: Appuyez sur une touche pour continuer…
Edité le 20/06/2010 à 12:09

Merci j’essaye sa prochainement, juste un renseignement, a quoi sert le echo… entre les 2 copy?

Pour savoir à peut près où il en est. Echo c’est pour afficher du texte ca te permettra de savoir que quand les points s’afficheront, le premier dossier sera sauvegardé.

Ok mais justement je me demandait, on peut pas mettre quelque chose qui affiche ou sa en ait par exemple des points qui s’affiche ou un pourcentage?

Non. A moins que tu fasse fichier par fichier et que tu rajoute un point par fichier, non :slight_smile:
Si tu veut faire des barres de progression, faut faire de la programmation et là c’est bien plus complexe que 7 lignes :slight_smile:

Par défaut, copy t’affiche ce qu’il copie.
Là c’est toi qui lui dis de ne pas le faire avec ta ligne @echo off

Aussi x] Mais dans mes docs, la liste est un peu longue, il demandait un point par fichier ou un point par pourcentage

Non mais je peux faire un point par dossier principale
Je copie le dossier video>un point
je copie le dossier musique> un point
etc…
A la place d’avoir 4 lignes j’en aurais 10 :slight_smile:

Oui mais le jour ou tu créer un dossier, faut le modifier, ensuite faut avoir précréer le dossier documents dans z:\ enfin pas mal de problèmes (à tester moi je dis ca je dis rien)

Quand tu dis dossier principal, tu veux dire premier niveau de sous-dossier ?
Tu n’es pas obligé de les mettre en dur dans ton batch, tu peux les sortir avec un DIR
Et ensuite tu n’as plus qu’à les parcourir avec une boucle FOR (FOR %%i in (‘DIR /B /AD’) DO …)

J’avait pas pensé à cela :wink:
Je pense que je vais prendre le dossier complet le seul truc qui m’embête ce de ne pas savoir où en est la copie :confused:
Quand on lance une copie windows il lance la barre de progression, on peut pas mettre une commande qui lance cet barre dans notre batch?

Hum la barre de progression ca relève de la programmation: tu as la programmation de base (des batch) où le code est lisible en éditant le fichier, pas énormément de possibilités (sauf sous Linux). Puis il y a la programmation avancée: On écrit du code dans un programme appelé IDE, avec beacoup de fichiers, des appels à d’autres fichiers, etc., cet IDE compile le programme (il transforme ton texte en code incompréhensible); qui devient un .exe
Le problème, c’est que l’apprentissage est très long, et une copie comme celle que tu demande est aussi très longue à coder.

Il y a aussi la possibilité de faire appel à un synchroniseur: Tu lui donne un (ou des) dossier(s) source(s) et un (ou des) dossier(s) de destination; il se charge de tout faire: il ne copie que les fichiers non-identiques; tu peut lui demander de copier toutes les X secondes; pleins de paramètres supers. Bon c’est un programme à installer, à comprendre…

Si j’étais toi, je resterais sur le bach tout simple… C’est une copie, hein ? Faut pas aller chercher loin pour faire une copie en batch :slight_smile:

Bonjour voici le code du bat il y’ a juste un petit hic :slight_smile:


@echo off 
title Sauvegarde de données
echo                §§§§§§§§§§§§§§§§§§§§§§§§§§
echo                §                                          §
echo                §    Sauvegarde de donnees   §
echo                §                                          §
echo                §§§§§§§§§§§§§§§§§§§§§§§§§§
echo.
echo.
pause
echo.
echo debut de la copie
echo>>z:\Bureau\Infos.txt Debut de la copie le %date% a %time%
echo.
copy C:\Users\XY  Z:\Bureau
echo.
echo.
echo copie terminer
echo.
echo>>Z:\Bureau\Infos.txt                                     §§§§§§§§§§§§§§§§§§§§§§§§§§
echo>>Z:\Bureau\Infos.txt                                     §                                          §
echo>>Z:\Bureau\Infos.txt                                     §   Sauvegarde de donnees    §
echo>>Z:\Bureau\Infos.txt                                     §                                          §
echo>>Z:\Bureau\Infos.txt                                     §§§§§§§§§§§§§§§§§§§§§§§§§§
echo.>>Z:\Bureau\Infos.txt
echo>>Z:\Bureau\Infos.txt Fin de la sauvegarde le %date% a %time%
echo.>>Z:\Bureau\Infos.txt
echo.>>Z:\Bureau\Infos.txt
pause
exit

Le hic c’est qu’il copie pas le dossier Xy mais les fichiers qui sont dedans, en gros il copie pas les sous dossiers (video musique etc…
Comment regler le soucis, car je vois pas la commande à mettre
Merci

Edit: le probléme ne vient pas du bat, j’ai voulus copier en manuel le dossier xy et sa à fait pareil.
Je suis sous seven 64bit avec compte administrateur et MDP, d’ou peut venir le porbléme?
Je crois que je vais devoir faire une ligne pour chaque dossiers…
Sinon pour savoir ou sa en ait c’est bon à chaque fichiers copier il le liste donc au fur à mesure la liste s’allonge :slight_smile:
Edité le 24/06/2010 à 11:38

bah
reformates :smiley: un problème comme ca, c’est soit un problème de droits (clic-droit->Propriétés->Sécurité)
Soit je sais pas

il va falloir utiliser la commande xcopy.

Un formatage sa me ferait bien c**** :smiley:
Nouveau code


@echo off 
title Sauvegarde de données
echo                §§§§§§§§§§§§§§§§§§§§§§§§§§
echo                §                        §
echo                § Sauvegarde de donnees  §
echo                §                        §
echo                §§§§§§§§§§§§§§§§§§§§§§§§§§
echo.
echo.
pause
echo.
echo debut de la copie
echo>>z:\Bureau\Infos.txt Debut de la copie le %date% a %time%
echo.
xcopy C:\Users\xy\Documents Z:\Bureau /s /e
echo.
echo.
echo copie terminer
echo.
echo>>Z:\Bureau\Infos.txt                                     §§§§§§§§§§§§§§§§§§§§§§§§§§
echo>>Z:\Bureau\Infos.txt                                     §                        §
echo>>Z:\Bureau\Infos.txt                                     § Sauvegarde de donnees  §
echo>>Z:\Bureau\Infos.txt                                     §                        §
echo>>Z:\Bureau\Infos.txt                                     §§§§§§§§§§§§§§§§§§§§§§§§§§
echo.>>Z:\Bureau\Infos.txt
echo>>Z:\Bureau\Infos.txt Fin de la sauvegarde le %date% a %time%
echo.>>Z:\Bureau\Infos.txt
echo.>>Z:\Bureau\Infos.txt
pause
exit

Voilà j’ai tester sur un dossier est sa fonctionne.
Il faut que je fasse une ligne par dossier
Par exemple si je copie document, il copie également les sous dossiers, donc il faut faire une ligne pour chaque dossier principaux.
Donc moi sa me derange pas sachant que dans mon dossier je ne creer plus de dossier tout est classer (doc autres etc…) si je creer un dossier il serat forcement dans un des dossier principaux.
Maintenant je voudrais savoir si il est possible de ne pas copier certains dossiers.
Par exemple j’ai un dossier dans document je veut tout copier sauf ce dossier c’est faisable?
Merci

Ps pour la sauvegarde entiere je test cette nuit car copier 100go de donnée sa prend un peu de temp :paf:
Edité le 24/06/2010 à 13:24

Merci mais je n’arrive pas à trouver la synthaxe :confused:

J’ai ecri ceci: xcopy C:\Users\XY\Documents Z:\Bureau /s /e /exclude:\autre\

Sa me dit impossible de lire le fichier \autre\

Et il arrete, il ne copie pas.