modification par lot des noms de fichiers

Le
g.bon
Bonjour,

Est-ce qu'il existerait une (petite) application qui permettrait d'enlever
automatiquement les caractères accentués et tous les signes qui ne sont pas
"standards" pour les remplacer par des caractères standards ?
remplacer les éè¨ê par e, par exemple
Ca me pose un problème dans certains softs mais je dois tout renommer à la
main.

Merci,
GB
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sergio
Le #22454871
Le 09/08/2010 13:56, g.bon a écrit :
Bonjour,

Est-ce qu'il existerait une (petite) application qui permettrait d'enlever automatiquement les caractères accentués et tous les
signes qui ne sont pas "standards" pour les remplacer par des caractères standards ?
remplacer les éè¨ê... par e, par exemple
Ca me pose un problème dans certains softs mais je dois tout renommer à la main.

Merci,
GB



Metamorphose : http://file-folder-ren.sourceforge.net/

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
g.bon
Le #22454931
Metamorphose : http://file-folder-ren.sourceforge.net/



Merci, ca a l'air très bien pour plein de choses.

La manip consisterait donc à faire des remplacements, cad principalement :
à > a
é > e
è > e

Ou y a-t-il qq chose de plus systématique pour enlever les caractères
non-alphabétiques ?

Merci,
GB
Sergio
Le #22455031
Le 09/08/2010 14:36, g.bon a écrit :
Metamorphose : http://file-folder-ren.sourceforge.net/



Merci, ca a l'air très bien pour plein de choses.

La manip consisterait donc à faire des remplacements, cad principalement :
à > a
é > e
è > e

Ou y a-t-il qq chose de plus systématique pour enlever les caractères non-alphabétiques ?



Il faut prendre la version 2 ("beta" depuis longtemps) :
http://downloads.sourceforge.net/file-folder-ren/metamorphose2_0.7.1_setup.exe

(onglet "Renommer", "modification", "supprimer les accents").

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
g.bon
Le #22455071
Il faut prendre la version 2 ("beta" depuis longtemps) :
http://downloads.sourceforge.net/file-folder-ren/metamorphose2_0.7.1_setup.exe




Magnifique, merci beaucoup.
GB
Jean-Claude BELLAMY
Le #22456101
"g.bon" discussion : 4c5fed29$0$9879$
Bonjour,

Est-ce qu'il existerait une (petite) application qui permettrait d'enlever
automatiquement les caractères accentués et tous les signes qui ne sont
pas "standards" pour les remplacer par des caractères standards ?
remplacer les éè¨ê... par e, par exemple
Ca me pose un problème dans certains softs mais je dois tout renommer à la
main.




J'ai conçu un script VBS "SANSACCENT.VBS" qui fait ça nasodigitalement !

Renomme, depuis le menu contextuel de l'explorateur, des fichiers ou
dossiers en remplaçant tous les signes diacritiques (accents, cédille,...)
et de façon récursive. Utile quand on doit copier des fichiers et dossiers
vers une machine UNIX par exemple.

http://www.bellamyjc.org/fr/vbsdownload.html#sansaccent


Il suffit de l'exécuter une fois (depuis le menu démarrer /exécuter ou dans
une fenêtre de commandes) pour qu'il s'installe automatiquement dans le menu
contextuel de l'explorateur.

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
g.bon
Le #22456741
Merci, c'est vraiment impeccable.

Une petite constatation en revanche, juste pour info.
Sur ma machine (Vista 64) le script a un comportement un peu étrange
lorsqu'on est en présence de sous-répertoires.
En effet, il ne traite que les arborescences les plus profondes.

Par exemple, si j'ai des fichiers à renommer dans chacun des dossiers
suivants :
temp
tempA_niv2
tempB_niv2
tempB_niv2B_niv3

Seuls seront traités les fichiers dans :
tempA_niv2
tempB_niv2B_niv3

Le script semble ne pas s'arrêter sur :
temp
tempB_niv2

En gros, "il ne traite pas les fichiers si un sous-répertoire existe au même
niveau".

En tous cas, ça me va bien comme ça, c'était juste pour participer au
débogage...

Merci,
GB


J'ai conçu un script VBS "SANSACCENT.VBS" qui fait ça nasodigitalement !

Renomme, depuis le menu contextuel de l'explorateur, des fichiers ou
dossiers en remplaçant tous les signes diacritiques (accents,
cédille,...) et de façon récursive. Utile quand on doit copier des
fichiers et dossiers vers une machine UNIX par exemple.

http://www.bellamyjc.org/fr/vbsdownload.html#sansaccent
Jean-Christophe
Le #22458001
On Aug 9, 12:56 pm, "g.bon"

enlever automatiquement les caractères accentués
les remplacer par des caractères standards ?



#define SIZE 1024 // taille de la chaine à traiter

const char
old[] = "àéîôù", // (etc) caractères à remplacer
new[] = "aeiou"; // (etc) caractères de remplacement

char *ptr, str[SIZE]; // chaine à traiter

int i;

for( i=0; old[i]; ++i )
{
while( ptr = strchr(str,old[i]) )
*ptr = new[i];
}
Michel__D
Le #22461241
g.bon a écrit :
Merci, c'est vraiment impeccable.

Une petite constatation en revanche, juste pour info.
Sur ma machine (Vista 64) le script a un comportement un peu étrange
lorsqu'on est en présence de sous-répertoires.
En effet, il ne traite que les arborescences les plus profondes.

Par exemple, si j'ai des fichiers à renommer dans chacun des dossiers
suivants :
temp
tempA_niv2
tempB_niv2
tempB_niv2B_niv3

Seuls seront traités les fichiers dans :
tempA_niv2
tempB_niv2B_niv3



Oui il y a un bug dans le traitement récursif, je te propose
le script ci-dessous légérement remanié

' ----------------------------------------------------------
' Script VBS de renommage sans accent de fichiers ou dossiers
' contenus dans un dossier (depuis l'explorateur)
' Auto-installable (par exécution sans paramètres)
' Sur la base du script de JC BELLAMY © 2002 modifé en 2010 par MD :
' correction d'un bug dans la récursivité et légère réécriture du code
' modification de noms de dossiers
' Si le nom sans accent existe déjà, un suffixe numérique
' autoincrémenté est ajouté au nom.
' ----------------------------------------------------------
Dim shell, args, fso, collfic, curfic, modif
Set args = Wscript.Arguments
Set shell = WScript.CreateObject("WScript.Shell")
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
If args.count=0 Then
' Auto-installation
Script=Wscript.ScriptFullName
Key="HKEY_CLASSES_ROOTFoldershellSansaccents"
shell.RegWrite Key,"Renommage des fichiers sans accent"
Command="cscript """ & Script & """ ""%1"""
shell.RegWrite Key & "command",Command
MsgBox "Script "& Script &" installé", vbInformation, "Renommage de fichiers sans accent"
wscript.quit
end if
curdir=args(0)
If not fso.FolderExists(curdir) Then
wscript.echo "Répertoire inexistant"
MsgBox "Répertoire inexistant" & vbcrlf & Curdir
wscript.quit
End If
nd=0
nf=0
Rename curdir
MsgBox nd & " dossier(s) et " & nf & " fichier(s) renommé(s) sans accent",, _
"Renommage dans " & Curdir
' --------------------------------------------------------------------
Sub Rename(curdir)
Dim folder

DT=replace(FormatDateTime(now, vbGeneralDate),"/", "-")
DT=replace(DT,":","-")
tempname="tmp" & DT
set folder=fso.GetFolder(curdir)
If not folder.IsRootFolder Then
set parent=folder.ParentFolder
parentpath=parent.path
oldname=folder.Name
newname=Sansacc(parentpath,oldname)
If modif<>0 Then
on error resume next
folder.Name=newname
If err<>0 Then
wscript.echo "erreur pour renommer le dossier " & oldname & " en " & newname
Else
nd=nd+1
wscript.echo "dossier " & oldname & " renommé en " & newname
End If
err.clear
on error goto 0
End If
End If
set colldir=folder.SubFolders
For each cursubdir in colldir
Rename cursubdir.Path
Next

parentpath=folder.Path
set collfic=folder.Files
For each Curfic in collfic
oldname=CurFic.Name
newname=Sansacc(parentpath,oldname)
If modif<>0 Then
on error resume next
CurFic.Name=newname
If err<>0 Then
wscript.echo "erreur pour renommer le fichier " & oldname & " en " & newname
Else
nf=nf+1
wscript.echo "fichier " & oldname & " renommé en " & newname
End If
err.clear
on error goto 0
End If
next
End Sub
' --------------------------------------------------------------------
Function Sansacc(parentpath,oldname)
lowname=lcase(oldname)
l=len(lowname)
newname=""
modif=0
For j = 1 To l
car=""
c=Mid(lowname,j,1)
Select Case c
Case "à", "â", "ä", "á","æ"
car="a"
Case "é", "è", "ê", "ë"
car="e"
Case "î","ï"
car="i"
Case "ô","ö"
car="o"
Case "û", "ü", "ù"
car="u"
Case "ÿ"
car="y"
Case "ç"
car="c"
Case "ñ"
car="n"
End Select
modif=modif Or len(car)
If len(car)=0 Then car=c
newname=newname & car
Next
if modif<>0 Then
fullname=parentpath & "" & newname
suffix=""
num=0
Do
etat=num
If fso.FileExists(fullname & suffix) Then
num=num+1
suffix=CStr(num)
End If
If fso.FolderExists(fullname & suffix) Then
num=num+1
suffix=CStr(num)
End If
Loop until num=etat
End If
Sansacc=newname & suffix
End Function
' --------------------------------------------------------------------
g.bon
Le #22461531
Ca marche parfaitement.
Merci,
GB
Jean-Claude BELLAMY
Le #22462141
"Michel__D" groupe de discussion : i3u85q$f7o$
g.bon a écrit :
Merci, c'est vraiment impeccable.

Une petite constatation en revanche, juste pour info.
Sur ma machine (Vista 64) le script a un comportement un peu étrange
lorsqu'on est en présence de sous-répertoires.
En effet, il ne traite que les arborescences les plus profondes.

Par exemple, si j'ai des fichiers à renommer dans chacun des dossiers
suivants :
temp
tempA_niv2
tempB_niv2
tempB_niv2B_niv3

Seuls seront traités les fichiers dans :
tempA_niv2
tempB_niv2B_niv3



Oui il y a un bug dans le traitement récursif, je te propose
le script ci-dessous légérement remanié
[...]



Merci Michel !
Sympa !
Ça c'est de la "source vraiment ouverte" !! ;-)

Je vais mettre à jour le script sur mon site (avec tes modifs et
annotations, oeuf corse!)




--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Publicité
Poster une réponse
Anonyme