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.
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.
-- Serge http://leserged.online.fr/ Mon blog: http://cahierdesergio.free.fr/ Soutenez le libre: http://www.framasoft.org
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.
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.
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
"g.bon" a écrit dans le message de groupe de 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.
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" <g.bon2@free.nospam.fr> a écrit dans le message de groupe de
discussion : 4c5fed29$0$9879$426a34cc@news.free.fr...
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.
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" a écrit dans le message de groupe de 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.
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
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.
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.
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.
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é
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 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é
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
' --------------------------------------------------------------------
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é
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 ' --------------------------------------------------------------------
"Michel__D" a écrit dans le message de 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
"Michel__D" <Michel.NOSPAM@orange-ft.com.invalid> a écrit dans le message de
groupe de discussion : i3u85q$f7o$1@speranza.aioe.org...
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
"Michel__D" a écrit dans le message de 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