Déplacement auto de fichiers se terminant par 4 chiffres

PF351 Messages postés 6 Statut Membre -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je bosse sur un logiciel qui génère des fichiers de sauvegarde dont le nom est identique au fichier d'origine mais avec 4 chiffres à la fin dans le même dossier
Est-ce que qqn saurait comment déplacer de manière automatique ces fichiers de sauvegarde dans un dossier parent s'appelant "Sauvegardes"?
Merci à tous!

4 réponses

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

    C'est facilement faisable avec un script DOS, associé à une tâche planifiée.

    Quels sont les emplacements à traiter ?
    Où est situé ce dossier "Sauvegardes" ?
    Peux-tu donner un exemple de nom de fichier avec les chiffres à la fin ?
    0
  2. PF351 Messages postés 6 Statut Membre
     
    Bonjour,
    Merci de ta réponse rapide.
    Les fichiers se situent sur un serveur dans différents dossiers.
    Par exemple, dans 1 dossier "plans", il y a le fichier de base qui s'appelle "plan RDC" avec ses sauvegardent qui s'appellent "plan RDC 0001" et "plan RDC 002".
    Le but de la manip serait de placer les 2 fichiers de sauvegarde dans Plans / Sauvegardes /
    Merci
    0
  3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Voilà une première version :

    @echo off
    mode con: cols=110 lines=20
    color 0F
    chcp 1252 > nul
    Setlocal enableextensions enabledelayedexpansion

    set dossier=Sauvegardes

    %~d0

    for /f "tokens=*" %%A in ('dir /s /b /ad "%~d0" ^| findstr /i "Plans"') do (call :deplacement "%%~dpnA" "%dossier%" "%%~nA")

    Endlocal
    echo. & timeout /t 10
    exit

    :deplacement
    (dir /a-d "%~1" > nul 2>&1) || (goto :eof)
    if /i "%~3"=="%~2" (goto :eof)

    cd %~1

    echo. & echo Traitement du dossier : %~1

    if not exist "%~2" (mkdir "%~2")

    for /f "tokens=*" %%B in ('dir /b /a-d "*.*"') do (
    set nom=%%~nB
    set sauvegarde=1

    for /l %%C in (1,1,4) do (
    set suffixe=!nom:~-%%C!
    (echo !suffixe! | findstr "0 1 2 3 4 5 6 7 8 9" > nul) || (set sauvegarde=0)
    )

    if !sauvegarde! EQU 1 (move "%%~nxB" "%~2" > nul 2>&1)

    )

    goto :eof
    rem

    Donc tu crées un nouveau document texte, tu colles ce script dedans, puis tu enregistres.

    Ensuite tu le renommes comme ceci :
    PF351.bat au lieu de Nouveau document texte.txt

    Ensuite tu places ce fichier sur le disque/lecteur contenant les sauvegardes à archiver.

    Pour finir il faudra créer une tâche planifiée (via le "Planificateur de tâches") qui exécutera le script à intervalles réguliers.
    0
  4. PF351 Messages postés 6 Statut Membre
     
    Bonjour,
    Merci de ta rep mais je suis 1 boulet et en ouvrant le plannificateur de tâches, ôh surprise je n'ai compris!
    Je rentre quoi dedans?
    Merci à toi
    0
    1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Déjà ça serait bien de savoir si le script fonctionne correctement chez toi ;)

      Je te prépare quelques captures d'écran pour t'expliquer le planificateur de tâches.
      0