Déplacement auto de fichiers se terminant par 4 chiffres

PF351 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
barnabe0057 Messages postés 14455 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!
A voir également:

4 réponses

barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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
PF351 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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
PF351 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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