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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !