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. #21
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    Pour info, après avoir écrit tant et plus de scripts DOS (.bat ou .cmd), je cesse de le faire parce que ce "langage" est plutôt illisible. Toutefois, voici une astuce pour faire un LEFT ou un RIGHT (dans ton cas, tu devrais donc faire un LEFT sur 4 positions pour retrouver "toto")

    Le code ci-dessous est un petit script DOS qui exécuté depuis le dossier c:\backups\Septembre va affiche sept comme préfixe et embre comme suffixe; pour l'exemple.

    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
     
    cls
     
    ::Get the current folder name, but only the basename, not the fullpath
    for %%I in (.) do set FOLDER=%%~nxI
     
    ::Get the first four characters (i.e. left(xxxx, 4))
    SET PREFIX=%FOLDER:~0,4%
     
    ::Get the last five characters (i.e. right(xxxx, 5))
    SET SUFFIX=%FOLDER:~-5%
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  2. #22
    Futur Membre du Club
    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
    Points : 6
    Points
    6
    Par défaut
    Merci cavo789,

    Bon la boulette du jour, ne jamais sauvegarder les fichiers avec ROBOCOPY dans le même répertoire.
    Il récupère bien les fichiers mais les effacent aussi derrière avec MOVE.

    Ils ne sont même pas mis dans la corbeille, super !

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    Citation Envoyé par ricolastico Voir le message
    Il récupère bien les fichiers mais les effacent aussi derrière avec MOVE.
    Gloups...

    Je t'avais alerté au post #8 que la récursivité n'allait pas trop apprécier et risquait de s'y perdre.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  4. #24
    Membre éprouvé
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 94
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 562
    Points : 1 253
    Points
    1 253
    Par défaut
    Salut,

    Regarde si ce script répond à ton besoin :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    @setlocal
    @echo off
    set "source=X:\y\z\tmp_a"
    set "dest=X:\y\z\tmp_b"
    set "folder_base_name=abcd"
    call :move_folders
    endlocal
    goto :eof
     
    :move_folders
    set /a source_level=0
    for %%i in ("%source:\=" "%") do set /a source_level+=1
    for /f "tokens=%source_level%* delims=\" %%i in (
      'dir /s /b /ad "%source%\%folder_base_name%*"'
       ) do call :move_sub "%%~j"
    goto :eof
     
    :move_sub
    if "%~1"=="" goto :eof
    set "sub_source=%source%\%~1"
    set "sub_dest=%dest%\%~1"
    if not exist "%sub_source%\" goto :eof
    if not exist "%sub_dest%\" md "%sub_dest%\.."
    echo moving "%sub_source%" to "%sub_dest%" ...
    move "%sub_source%" "%sub_dest%\.."
    if not errorlevel 1 echo    done.& goto :eof
    echo    Error
    goto :eof

  5. #25
    Futur Membre du Club
    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
    Points : 6
    Points
    6
    Par défaut
    Bonjour kaitlin,

    Effectivement cela fonctionne excepté qu'il ne prend pas la totalité de mes répertoires.

    J'ai malheureusement des répertoires avec des # dans les noms et ils ne les prend pas.

    Une idée ?

    En tout cas merci pour le reste ça fonctionne bien.

    PS : après vérification, il prend certains répertoires avec des #et d'autres non, bizarre
    Et il ne va plus en profondeur que 1 ou 2 dossiers, après il ne les copie pas

  6. #26
    Membre éprouvé
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 94
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 562
    Points : 1 253
    Points
    1 253
    Par défaut
    Peux-tu copier ce qui s'affiche en console ?

  7. #27
    Futur Membre du Club
    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
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par cavo789 Voir le message
    Gloups...

    Je t'avais alerté au post #8 que la récursivité n'allait pas trop apprécier et risquait de s'y perdre.
    J'ai trouvé, voilà le bordel en faites ils ne sont pas effacés, ils étaient "caché", il doit y avoir une syntaxe dans le code qui l'est met en caché une fois copié, mais ouf j'ai irien perdu

  8. #28
    Futur Membre du Club
    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
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par kaitlyn Voir le message
    Peux-tu copier ce qui s'affiche en console ?
    J'ai rien qui s'affiche en console, la fenêtre disparait aussitôt une fois copié.

  9. #29
    Membre éprouvé
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 94
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 562
    Points : 1 253
    Points
    1 253
    Par défaut
    Ajoute "pause" en dessous de "endlocal"

  10. #30
    Futur Membre du Club
    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
    Points : 6
    Points
    6
    Par défaut
    Merci Kaitlyn, je ne sais pas pourquoi mais cela fonctionne correctement maintenant !

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