Rename (DOS) - supprimer une part des noms

Souffre -  
dubcek Messages postés 19021 Statut Contributeur -
Bonjour,

J'aimerais savoir comment renommer plusieurs fichiers d'un coup en gardant uniquement la partie du nom qui m'interesse.

En pratique :

J'ai une série TV avec plusieurs épisodes du type nomdeserie.blabla.S01E01.avi

En gros, j'aimerais passer de

- nomdeserie.blabla.S01E01.avi
- nomdeserie.blabla.S01E02.avi
- nomdeserie.blabla.S01E03.avi
- nomdeserie.blabla.S01E04.avi

à

- S01E01.avi
- S01E02.avi
- S01E03.avi
- S01E04.avi

J'ai essayé : ren C:\videos\*S??E??.avi S??E??.avi

Mais les résultats foirent car la chaine de caractères prise avec le * apparaît dans les ?

J'espère que je m'explique de façon compréhensible...

En tout cas, je vous serais très reconnaissant si vous aviez une solution.

Merci !

3 réponses

dubcek Messages postés 19021 Statut Contributeur 5 637
 
hello
enlever le echo pour effectuer le rename
@echo off
for /f "delims=. tokens=1,2,3,4" %%a in ('dir /b *S*.avi') do (
	echo rename "%%a.%%b.%%c.%%d" "- %%c.%%d"
)
1
Souffre
 
Super !

Enfin, avec echo ça s'affiche comme je le voudrais mais dès que j'enlève l'echo j'ai un message d'erreur comme quoi les fichiers sont introuvables...

Si c'est possible, pourrais-je avoir l'explication du fonctionnement de la commande ?

Merci encore !

Edit : en fait, au format que je donne ca fonctionne nickel mais à vrai dire c'est plutot une forme de blablaS01E01blabla.avi
0
Souffre
 
J'ai compris le fonctionnement après recherches et tests... En fait, l'idéal serait de pouvoir délimiter avec "S0" => %%a = blabla %%b = 1E01blabla.avi mais c'est impossible. On ne peut délimiter qu'avec 1 caractère mais pas avec une chaîne de caractères. J'en mourrais pas mais c'est dommage ^^

Merci vraiment pour l'aide !
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
est-ce que la longueur de blabla : S01E01blabla.avi est fixe ?
0
Souffre
 
Malheureusement non. Et puis, mon but était d'avoir une commande "universelle" me permettant de trier mes séries par ordre des episodes + nettoyer un peu les noms...
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
et comme ça, si il n'y a pas d'autres S dans les blabla
C:> dir /b
- nomdeserie.blabla.S01E01blabla.avi
- nomdeserie.blabla.S01E02blabla.avi
- nomdeserie.blabla.S01E03blabla.avi
- nomdeserie.blabla.S01E04blabla.avi
C:> ..\aa
rename "- nomdeserie.blabla.S01E01blabla.avi" "- S01E01.avi"
rename "- nomdeserie.blabla.S01E02blabla.avi" "- S01E02.avi"
rename "- nomdeserie.blabla.S01E03blabla.avi" "- S01E03.avi"
rename "- nomdeserie.blabla.S01E04blabla.avi" "- S01E04.avi"
C:> type ..\aa.bat
@echo off
setlocal enableDelayedExpansion
for /f "delims=S tokens=1,2" %%a in ('dir /b *S*.avi') do (
        set x=%%b
        set x=!x:~0,5!
        echo rename "%%aS%%b" "- S!x!.avi"
)
C:>
0