Bonjour,
J’ai un dossier contenant 50 fichiers pdf
J’aimerais une solution pour modifier leurs noms d’un coup : par exemple remplacer tous les é par des e, tout cela en ligne de commandes sous win7
Comment puis-je procéder ?
Merci d’avance. .
Bonjour,
J’ai un dossier contenant 50 fichiers pdf
J’aimerais une solution pour modifier leurs noms d’un coup : par exemple remplacer tous les é par des e, tout cela en ligne de commandes sous win7
Comment puis-je procéder ?
Merci d’avance. .
Bonjour à toi,
Ce n'est pas compliqué en sois par contre il faudrait que tu exprime clairement ce que tu veux remplacer?
Tous les accents ? Des mots présents dans le nom des fichiers ? des chiffres ?
Car en fonction ce n'est pas tout à fait pareille.
oui je m'explique:
je possède une série de fichiers dont les noms comportent des ', é, è, ç...
le problème: je dois faire à coté un fichier html contenant des liens vers ces fichiers.
or u lien avec caractère spécial ne fonctionne pas!
je voudrai donc les remplacer par des _, e, c...
Ok alors en batch je te propose ça :
Et en powershell :
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 mode con codepage select=1252 @echo off Setlocal enabledelayedexpansion for /R %%d in (*) do ( set an=%%~nd set an=!an:'=_! set an=!an:à=a! set an=!an:ç=c! set an=!an:é=e! set an=!an:è=e! if [!an!]==[] (set an=) set newname=!an!%%~xd if /i not [%%~nd%%~xd]==[!newname!] rename "%%d" !newname! ) endlocal
Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Get-ChildItem | ForEach-Object { $original = $_ $newname = @() $original.Name.ToCharArray() | ForEach-Object { $newname += switch ($_){ 'à' {'a'} 'ç' {'c'} 'é' {'e'} 'è' {'e'} "'" {'_'} DEFAULT {"$_"} } } $newname -join "" Rename-Item -Path $original -NewName $newname -PassThru -WhatIf }
merci mais en fait je n'y comprends rien
je cherchais un équivalent sous le Command Prompt de windows,
de la commande rename de linux
???? Sérieux ????
Le batch c'est quoi pour toi ?
Si tu lut ce le premier code que j'ai posté il y a bien rename dedans :
Mais les accents et compagnie, faut bien les remplacer à un moment si on veut qu'ils ne soient plus là non ?
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 mode con codepage select=1252 @echo off Setlocal enabledelayedexpansion for /R %%d in (*) do ( set an=%%~nd set an=!an:'=_! set an=!an:à=a! set an=!an:ç=c! set an=!an:é=e! set an=!an:è=e! if [!an!]==[] (set an=) set newname=!an!%%~xd if /i not [%%~nd%%~xd]==[!newname!] rename "%%d" !newname! ) endlocal
Sous linux non plus on ne fait disparaître par magie les caractère accentués !
Pour le plaisir :
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #!/bin/bash IFS="|" if [ $# -lt 1 ] then echo "Usage: `basename $0` <file(s)>" fi for file in $@ do file_mod=`echo "$file" | \ tr '[A-Z]' '[a-z]' | \ tr '[àâäéèêëîïôöùûü]' '[aaaeeeeiioouuu]' | \ sed -e "s/[[:space:]]/_/g" | \ sed -e "s/-//g" | \ sed -e "s/\/$//" | \ sed -e "s/'/_/g" | \ sed -e "s/__/_/g"` mv "$file" "$file_mod" done
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager