IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Déplacer des fichiers vers un autre répertoire tout en gardant l'arborescence


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut Déplacer des fichiers vers un autre répertoire tout en gardant l'arborescence
    Bonjour à tous,

    Est-ce que quelqu'un pourrait m'aider ?

    Je souhaiterais déplacer et non pas copier, des fichiers qui se trouvent dans un dossier avec un nom spécifique vers un autre répertoire tout en gardant l'arborescence d'origine.

    Merci pour votre aide

  2. #2
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    Alors en fouillant sur le forum j'ai trouvé ce code :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    Title Copie des fichiers avec l'extension *.fp2
    mode con:cols=100 lines=20
    COLOR 0A
    set ext=fp2
    set source=%CD%
    echo "%source%\*.%ext%"
    pause
    set cible=%source%\backup\
    If Not Exist "%cible%" MD "%cible%"
    For /f "delims=" %%i in ('dir /s /b "%source%\*.%ext%"') do Copy "%%i" "%cible%"
    PAUSE

    La copie des fichier fonctionne bien mais cela copie uniquement les fichiers.
    je souhaite garder chaque fichier avec l'arborescence complet de leur dossier et sous dossier d'origine et aussi que cela soit supprimer du dossier d'origine.

    Que dois je rajouter au code ??

    Merci beaucoup !

  3. #3
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    Je vois ta question, je lance une petite recherche Google sur "xcopy" suivi du mot "move" et j'obtiens ce lien https://superuser.com/questions/8296...nstead-of-copy qui mentionne que Robocopy le ferait.

    A l'instar de xcopy, Robocopy est un utilitaire préinstallé sur Windows donc que tu as très probablement déjà installé sur ta machine.

    Bonne journée.

  4. #4
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    Bonjour cavo789,

    Merci pour le lien mais rien à voir donc avec le code que j'ai déjà trouvé ?
    Si je demande de l'aide c'est que j'ai peur de faire des bêtises, je ne m'y connais pas du tout dans ce domaine.
    Je souhaitais juste fignoler le code ci dessus pour que cela récupère chaque fichier avec l'arborescence complet de leur dossier et sous dossier d'origine et aussi que cela soit supprimer du dossier d'origine.

    A la rigueur si tu vois ce que je veux dire, veut tu bien aider en m'indiquant un bout de code ?

  5. #5
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Pourquoi un code si un outil natif de Windows le fait ? Tu as testé robocopy ?

  6. #6
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    Non car je ne sais pas pas quelle syntaxe je dois mettre par rapport à ma demande

  7. #7
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    J'ai testé cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ROBOCOPY D:\TEST D:\TEST\backup *.spf /MOVE
    Mais j'ai une erreur.

    Comment lui dire qu'il faut qu'il regarde dans les sous dossier de TEST ?

  8. #8
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Citation Envoyé par ricolastico Voir le message
    Non car je ne sais pas pas quelle syntaxe je dois mettre par rapport à ma demande
    Dans une session DOS, robocopy /? t'affiche l'aide.

    robocopy source destination [fichier [fichier]...] [options]et donc quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    robocopy . c:\un_dossier *.fp2 /E /MOVE
    Déplace tous les fichiers .fp2, de manière récursive, du dossier actif vers le dossier c:\un_dossier qui sera créé si inexistant; arborescence respectée.

    (je vois ton post de 16h40, je pense qu'il te faut définir un dossier ailleurs que dans ton dossier source parce que la récursivité ne va pas aimer du tout selon moi)

  9. #9
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    Merci Cavo789,

    Comment lui dire qu'il faut qu'il regarde également dans les sous dossier de TEST ?

  10. #10
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    Ok trouvé, il faut ajouter l'option /s

    Par contre il cherche à effacer le dossier source alors que forcément il reste des données dedans.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    2020/09/21 16:48:59 ERREUR 32 (0x00000020) Suppression du répertoire source D:\TEST\
    Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus.
    Comment lui dire de ne pas l'effacer ? ou cela n'a pas d'importance et on laisse comme ça ?

  11. #11
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    ça à l'air de fonctionner correctement en tout les cas.

    Juste une dernière question, comment avec Robocopy déplacer un nom de dossier spécifique et non une extension de fichier ?
    ?

  12. #12
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Un sous-dossier tu veux dire ? Je suppose comme ceci :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    ROBOCOPY D:\TEST\SOUS-DOSSIER D:\TEST\backup *.* /MOVE

  13. #13
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    J'arrive à déplacer des fichiers avec des extensions maintenant.

    Je souhaiterais déplacer tous les dossiers ou sous dossiers portant le nom de "toto" avec les fichiers à l'intérieur.
    Merci pour ton aide en tout cas

  14. #14
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    robocopy /? et vois si quelque chose est proposé. Perso, je n'en sais rien (je t'ai proposé l'outil, je n'en suis pas un fidèle utilisateur; loin de là).

  15. #15
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    Ce que je comprends avec ROBOCOPY c'est que l'on ne peut copier que des types de fichiers ou extension ou lorsque le dossier est à un emplacement précis.

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    robocopy "G:toto" "G:backup" /e /COPYALL /r:1

    Hors mes répertoires "toto" se trouvent dans différents répertoires.

    J'avais déjà trouvé un genre de code comme j'ai indiqué dans mon premier message mais je n'arrive pas à remettre la main dessus.

  16. #16
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    J'ai trouvé cela comme code mais ça ne fonctionne pas, mais connaissance étant extrêmement limité sur ce type de code, je suis incapable de dire ce qui ne va pas.

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
    cd /d "C:\TEST"
    for /f "usebackq delims=" %%a in ("toto") do (
           for /f "delims=" %%b in ('dir "%%a" /b /s /a-d ') do copy "%%b" "C:\TEST\backup"
    )

  17. #17
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    J'en ai trouvé un autre et celui-ci fonctionne sauf qu'il n'efface pas les répertoires et fichiers copiés d'origine.

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for /d /r "C:\TEST\" %%a in (toto?) do (
      if /i "%%~nxa"=="toto" xcopy "%%a" "C:\TEST\backup\%%~pnxa\" /s/h/e/k/f/c
    )

    Il doit y avoir une syntaxe j'imagine a rajouter mais je ne trouve pas laquel

  18. #18
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    Je viens de trouver !

    Il faut utiliser la commande RMDIR

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    for /d /r "C:\TEST" %%a in (toto?) do (
      if /i "%%~nxa"=="toto" XCOPY "%%a" "C:\TEST\Backup\%%~pnxa\" /s/h/e/k/f/c
    	rmdir /S /Q "%%a"
    )
    PAUSE

  19. #19
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Super !

    Donc Robocopy pour tout récupérer puis tu nettoies.

    Bonne journée.

  20. #20
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2018
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2018
    Messages : 24
    Par défaut
    Oui sauf que j'ai trouvé une coquille.

    En effet il récupère bien les dossiers avec le nom toto, les supprimes mais si le dossier s'appelle toto1, d'une il ne le récupère pas, il le supprime directement.
    Malheureusement j'ai des noms avec toto1.

    Il faut que je vérifie cela. Mais c'est en bonne voie

Discussions similaires

  1. [Python 2.X] Copier et Déplacer des fichiers vers un autre répertoire
    Par loict31 dans le forum Général Python
    Réponses: 2
    Dernier message: 14/10/2015, 19h17
  2. Réponses: 2
    Dernier message: 21/04/2011, 17h15
  3. Réponses: 9
    Dernier message: 20/02/2009, 17h51
  4. Réponses: 3
    Dernier message: 12/04/2006, 20h44
  5. Déplacer un fichier dans un autre répertoire
    Par t_om84 dans le forum Général Python
    Réponses: 2
    Dernier message: 16/05/2005, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo