Et apparemment tes fichiers ont tous des noms différents mais certains ont les mêmes...
Il faudrait donc établir une liste de fichiers de même nom ( et c'est là qu'il faudrait savoir où est la limite de la comparaison des chaines ) : par exemple, tester si dans "nimportequelnom1-1526.ext" on repère qu'il y a "nimportequelnom1".
Code : Tout sélectionner
@echo off
setlocal enabledelayedexpansion
for %%a in (*) do (
if defined tous (
set tous=!tous!;%%a
) else (
set tous=%%a
)
)
:reconnaissance
set nom=
set /a token=token+1
for /f "tokens=%token% delims=;" %%b in ("%tous%") do (set fichier0=%%b)
set fichier=%fichier0%
:extraction
set extrait=%fichier:~0,1%
set fichier=%fichier:~1%
set nom=%nom%%extrait%
set x=-1
:x
set /a x=x+1
if %extrait%==%x% call :verif
if %x% neq 9 goto x
if not %nom%==%fichier0% goto extraction
goto reconnaissance
:verif
if not defined reference goto sver
set /a token2=token2+1
for /f "tokens=%token2% delims=;" %%c in ("%reference%") do (set ref=%%c)
if %ref%==%nom% move "%fichier0%" "Dos%nom%"
goto :eof
:sver
if not exist Dos%nom% md Dos%nom%
if defined reference (set reference=%reference%;%nom%) else (set reference=%nom%)
goto :eof
Comme vous le constatez, je l'affinerai un peu, d'autant plus qu'il ne fonctionne pas encore comme je le souhaite, manque de temps.
Je continue dès que possible, promis !