J'ai besoin d'un moyen de renommer tous les fichiers des dossiers et sous-dossiers en minuscules.
J'aimerais savoir s'il existe un moyen de faire cela en utilisant sólo Windows (XP ou 7)
J'ai besoin d'un moyen de renommer tous les fichiers des dossiers et sous-dossiers en minuscules.
J'aimerais savoir s'il existe un moyen de faire cela en utilisant sólo Windows (XP ou 7)
Allez dans le répertoire et exécutez la commande suivante :
for /f "Tokens=*" %f in ('dir /l/b/a-d') do (rename "%f" "%f")
Voici la décomposition au cas où quelqu'un voudrait modifier/améliorer :
for /f
- Pour chaque ligne"Tokens=*"
- Traitez chaque élément de chaque ligne.%f in (...)
- %f
est le nom de votre variable pour chaque élément.dir
- liste tous les fichiers et sous-répertoires d'un répertoire./l
- (paramètre pour dir) Utilise les minuscules./b
- (paramètre pour dir) Utilise le format nu, seulement les noms de fichiers/répertoires, pas de taille, pas d'en-tête./a-d
- (paramètre pour dir) Faites no liste répertoires . ( a
signifie attribute
, -
signifie not
et d
signifie directory
) .rename "%f" "%f"
- renommer le fichier avec son propre nom, qui est en fait mis en minuscule par l'option dir
et /l
combinaison.renommer spacetornado est un programme Windows qui renomme des quantités massives de fichiers par lots. Vous pouvez rechercher et remplacer du texte, supprimer un certain nombre de caractères, changer la casse en minuscule, majuscule ou première lettre capitale, et ajouter du texte au début ou à la fin (append/prepend) de chaque nom de fichier.
Depuis Windows 7, vous pouvez utiliser PowerShell pour ces tâches
Get-ChildItem "C:\path\to\folder" -recurse |
Where {-Not $_.PSIsContainer} |
Rename-Item -NewName {$_.FullName.ToLower()}
- Choisissez votre dossier racine<br>- tous <em>fichiers </em>à l'intérieur du dossier racine et des sous-dossiers sont renommés<br>- les noms de dossiers sont exclus avec <code>Where {-Not $_.PSIsContainer} |</code><br>
Voici une solution de ligne de commande récursive appropriée utilisant uniquement des commandes natives cmd.exe et qui fonctionne réellement. Je pense que c'est la solution native la plus simple possible :
for /r %D in (.) do @for /f "eol=: delims=" %F in ('dir /l/b/a-d "%D"') do @ren "%D\%F" "%F"
Si vous êtes prêt à aller au-delà des commandes natives de cmd.exe, une autre option est mon programme de gestion de l'environnement. Utilitaire de renommage par expression régulière JREN.BAT qui prend en charge les options permettant de convertir les noms en majuscules ou en minuscules. C'est un pur script (hybride JScript/batch) qui fonctionne nativement sur n'importe quelle machine Windows à partir de XP - aucun fichier exe tiers n'est nécessaire. Une documentation complète est intégrée - accessible depuis la ligne de commande via jren /?
ou jren /??
si vous voulez une sortie paginée.
Avec le JREN, la solution récursive est aussi simple que :
jren "^" "" /s /l
for /f "Tokens=*" %f in ('cmd /c "echo %cd%& dir /l/b/ad/s"') do (for /f "Tokens=*" %g in ('dir /l/b/a-d "%f"') do (rename "%f"\"%g" "%g"))
for /f "Tokens=*" %f in ('cmd /c "echo %cd%& dir /l/b/ad/s"')
Obtient une liste des chemins absolus de tous les répertoires à l'intérieur du courant (y compris lui) :
C:\Foo >
C:\Foo \TO.txt
C:\Foo\Bar \LOWER.txt
C:\Foo\Bar\Baz \CASE.txt
for /f "Tokens=*" %g in ('dir /l/b/a-d "%f"') do (rename "%f"\"%g" "%g")
Obtient une liste de tous les les noms de fichiers (ou fichier et répertoire les noms si vous enlevez le /a-d
) à l'intérieur de chacun des chemins absolus trouvé par le première boucle et convertit le nom de ces fichiers en minuscules.
C:\Foo\ TO.txt
C:\Foo\Bar\ LOWER.txt
C:\Foo\Bar\Baz\ CASE.txt
* il a besoin de deux boucles parce que le deuxième argument à rename
doit être un nom du fichier et non un chemin absolu (comme celle obtenue par le /s
interrupteur).
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.