Batch scripts xcopy

Bonjour,

j'ai cree un script qui me copy plusieurs fichiers d'un repertoire A vers un repertoire B.
mai le probleme est que je ne veux pas ecrazer les fichiers existants,
donc le message d'ecraser les fichiers existants apparait a chaque copie de fichier.
comment est ce que je peux cree la reponse non comme variable pour etre insere automatiquelment pendant la copie?

Merci
Configuration: Windows XP Internet Explorer 7.0

8 réponses

  1. Contributeur
    en fait il y a une différence entre copy et xcopy, avec copy un seul n suffit comme réponse:
    $ dir /b a
    fichier1
    fichier2
    
    $ dir /b b
    fichier1
    fichier2
    
    $ echo n > rep1
    
    $ copy a\*.* b < rep1
    a\fichier1
    Remplacer b\fichier1 (Oui/Non/Tous) : n
    a\fichier2
    Remplacer b\fichier2 (Oui/Non/Tous) :
            0 fichier(s) copié(s).

    résultat, 0 fichier copié
    j'ajoute un fichier
    $ echo 3333>a\fichier3
    
    $ copy a\*.* b < rep1
    a\fichier1
    Remplacer b\fichier1 (Oui/Non/Tous) : n
    a\fichier2
    Remplacer b\fichier2 (Oui/Non/Tous) :
    a\fichier3
            1 fichier(s) copié(s).

    résultat 1 fichier copié
    avec xcopy, il lui faut autant ou plus de réponses, donc si tu as, par ex. moins de 1000 fichiers, on crée un fichier contenant 1000 n
    $ @echo off
    $ for /l %a in (1,1,1000) do echo n >> reponse
    
    $ xcopy a b /s/e /i < reponse
    Remplacer C:\b\fichier1 (Oui/Non/Tous)?
    ....
    0 fichier(s) copié(s)

    on supprime un fichier pour tester
    $ del b\fichier3
    
    $ xcopy a b /s/e /i < reponse
    Remplacer C:\z\b\fichier1 (Oui/Non/Tous)?
    ......
    a\fichier3
    1 fichier(s) copié(s)

    mais c'est du bricolage, il y a des bons outils de synchronisation pour faire ça :
    https://www.commentcamarche.net/telecharger/securite/sauvegarde/
    1. Misaotra anareo rehetra fa tena nanampy be ahy le izy..

      Many thanks
    2. merci dubcek !
  2. 1. Remplir un fichier avec les fichiers existants: dir repertoire /b > liste.txt
    2. XCOPY en excluant les fichiers repris dans liste.txt : paramètre /EXCLUDE:liste.txt
    1. Bonjour,

      C'est pas plus simple de tester l'existence du fichier que tu veux copier et de le supprimer si il existe ?
      Par exemple,
      If exist c:\A.txt del C:\a.txt
      copy a:\z.txt c:\a.txt
      1. Contributeur
        hello
        tu ne veux pas les écraser, donc automatiser de répondre non à chaque "Remplacer xxxx (Oui/Non/Tous)? "
        essaye
        echo n > rep
        copy ......... < rep
        1. Non les gar ca ne marche pas.
          jai essaye mai ca ne marche pour la proposition d ecraser,ca ne poura pas m'aranger.
          je veux plustot que le fichiers existant ne soit pas ecraser ca me permet de reconcilier les fichiers en faisant des decomptes.

          ya pas une autre solution?

          Merci
          1. Tu veux peut-être donner un numéro d'incrément à chaque exemplaire de fichier que tu trouves. Au fil des exécutions de ton script, tu te retrouverais avec ce genre de liste :

            C:\FichierA.txt
            C:\FichierA001.txt
            C:\FichierA002.txt
            C:\FichierA003.txt
            etc.

            Sinon, j'vois pas.
        2. Contributeur
          je ne comprends pas ce que tu veux, ce que je propose c'est de répondre non à la question de l'écrasement, donc ne sont copiés que les fichiers qui n'existent pas
          1. tu as tout compris je veux repondre non mais je veux que ca soit automatiquement fait par l'ordinateur lui meme.
            c'est a dire dans le script je ne veux pas avoir a appuier sur N tout le temps de la côpy.jai enviiron 9000 fichiers
            et c'est justment comment automatiser ce procesus qui me preocupe,

            merci
        3. Contributeur
          cf post 2
          mettre le n dans un fichier et
          xcopy ...< fichier
          1. comment,fais moi une demo,
        4. Ou sinon comme disait frameto tu test si le fichier existe déja. Si il existe tu passe au fichier suivant sinon tu le copie.
          if not exist C:\fichier1 xcopy...etc...
          sinon il continue la lecture du script