Robocopy / copier fichiers sans les dossiers

Résolu
BaZHik Messages postés 38 Statut Membre -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je voudrais faire une copie de tous les .xls contenus dans une arborescence de dossiers, le hic c'est que je ne veux pas conserver cette arborescence.
Je souhaite retrouver tous les .xls copiés a la racine du fichier de destination.

Pour l'instant, mon robocopy ressemble à ça:

Robocopy "E:\DossierSource" "E:\Destination" *.xls /E /R:1 /W:1 /TEE /LOG:C:\log%STAMP%.log /DCOPY:T

Merci de votre aide.

Cdt

PS:
variable STAMP pour la date set "STAMP=%YYYY%-%MM%-%DD%"

3 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonjour,

    J'ai pas testé mais ça devrait le faire comme ça :

    cd /d "E:\DossierSource"

    for /f "tokens=*" %%A in ('dir /b /s /a-d "*.xls"') do (

    Robocopy "%%~A" "E:\Destination" /E /R:1 /W:1 /TEE /LOG:C:\log%STAMP%.log /DCOPY:T

    )



    “L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
    0
  2. BaZHik Messages postés 38 Statut Membre
     
    Bonjour barnabe0057 et merci pour ta réponse rapide.

    C'est un bon début =) mais il y a quand même une erreur:

    "
    ERREUR 123 accès au répertoire sour E:/../machin Truc.xls
    La syntaxe du nom de fichier, de répertoire ou du volume est incorrecte.
    "

    Peut-être dû au fait qu'il y ait des espaces dans le nom de fichier.

    J'ai aussi du supprimer l'argument /LOG.

    merci de ton aide.
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Je vais tester ça de suite.
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Effectivement RoboCopy n'est pas adapté à la copie de fichiers, il copie des répertoires.

        Il suffit d'utiliser la commande COPY ou bien XCOPY :

        cd /d "E:\DossierSource"

        for /f "tokens=*" %%A in ('dir /b /s /a-d "*.xls"') do (

        copy "%%~A" "E:\Destination"

        )
        0
  3. BaZHik Messages postés 38 Statut Membre
     
    Super, ça fonctionne.
    Merci de ton aide.

    Et en passant, je note que robocopy n'est pas adapté aux fichiers.

    Juste une dernière chose, ce bat va être lancé tous les jours. Si le fichier déjà, il l'écrase? (c'est dû mons ce que je crois constater.)
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Oui il écrase, tu peux rajouter une condition IF NOT EXIST si tu ne veux pas que ça soit écrasé.
      0
    2. BaZHik Messages postés 38 Statut Membre
       
      Non, c'est bon comme ça.

      Merci de ton aide.
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > BaZHik Messages postés 38 Statut Membre
         
        De rien, bonne journée à bientôt peut-être.
        0