Problème d'utilisation d'une variable dans une boucle
Bonjour !
Je débute en batch ; c'est loin de mon boulot, mais ça me rend bien service à l'occasion.
J'ai un répertoire contenant des fichiers docx sous forme de 4 chiffres. Je dois les renommer pour ajouter un suffixe et les déplacer dans un dossier au nom du fichier d'origine (et un sous-dossier au nom du fichier renommé, ce qui donne : [nomFichier]\[nomFichier+suffixe]\[nomFichier+suffixe].docx).
Pour tester, j'ai essayé ça avec un nom pré-déterminé :
Code:
1 2 3 4 5 6 7 8 9
| @echo
REM 1. Stocker nom dans une variable
set nom=1234
REM 2. Renommer le fichier
ren "%nom%.docx" "%nom%-COURRIER ARCHIVE.docx"
REM 3. Créer les deux sous-dossiers
md "%nom%\%nom%-COURRIER ARCHIVE"
REM 4. Déplacer le fichier dans le sous-dossier
move "%nom%-COURRIER ARCHIVE.docx" "%nom%\%nom%-COURRIER ARCHIVE" |
Et ça marche très bien.
Là où ça se complique, c'est pour essayer de mettre ça avec une variable ! J'ai tenté d'utiliser la boucle FOR mais ça n'a pas l'air de fonctionner :
Code:
1 2 3 4 5 6 7
| @echo
setlocal enabledelayedexpansion
for %%M in (*.docx) do (
set %%m=%%M:~-5
md %%m-test
pause
) |
J'ai essayé plusieurs variantes, mais rien n'y fait, je n'arrive pas à mettre dans la variable le nom du fichier sans l'extension et à le réutiliser ensuite dans ma boucle.
Toute aide sera plus qu'appréciée, mais s'il y a quelques explications en bonus, ça sera parfait ! Merci !