Bonjour,

Je fais appel aux pros de la programmation

Depuis plusieurs heures j’essaye de créer un batch me permettant de renommer mes fichiers textes en ajoutant la date et l'heure. Après plusieurs recherches j'ai réussi cette étape.

Une fois mes fichiers texte renommés je voudrais les déplacer. C'est la que je bloque, pourtant ce devrait être la partie la plus simple

Le fait que j'ai 4 move a faire pose un problème. Quand je lance le bat, il déplace mes fichiers mais ne renomme que le premier. Alors que si j’enlève les "move" de mon code tous les fichiers sont bien renommés.

voici mon code:

Code : 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
29
30
31
32
33
@echo off




REM --------------------------------------------------------
REM
REM Renommage des fichiers
REM 
REM --------------------------------------------------------

set source=%C:\toto
for /F "tokens=1,2 delims=:" %%g in ('time/T') DO (set heure=%%gh%%h)

for /r "%source%" %%i in (*.*) do call :action "%%i" "%%~ni" "%%~xi"

:action
set control=%~1%
set nom_de_fichier=%~2%
set extension=%~3%
set var_last=%control:~-5,1%
IF NOT %var_last%==# ren "%control%" "%nom_de_fichier%-%date:~0,2%-%date:~3,2%-%date:~6,4%-%heure%%extension%" 

REM --------------------------------------------------------
REM
REM Déplacer des fichiers
REM 
REM --------------------------------------------------------

move /Y "C:\toto\toto1\*.txt" "C:\titi\toto1"
move /Y "C:\toto\toto2\*.txt" "C:\titi\toto2"
move /Y "C:\toto\toto3\*.txt" "C:\titi\toto3"
move /Y "C:\toto\toto4\*.txt" "C:\titi\toto4"
Les 4 fichiers sont bien déplacés, mais seul le fichier texte de toto1 est renommé avec date et heure. (ordre de lecture?)

La dernière tentative que j'ai faite est de mettre les move à la suite en les séparant par &, mais sans succès!

A l'aide!!!!!

Merci d'avance.