81 votes

Existe-t-il un moyen de renommer les fichiers en minuscules par lots ?

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)

1voto

ForeverWintr Points 121

Le meilleur programme pour faire cela sous Windows est Utilitaire de renommage en masse . C'est un outil pour les hommes. Vous pouvez même utiliser des regex pour renommer des fichiers et/ou des dossiers. Il a également Shell intégration (de sorte que vous pouvez exécuter à partir de l'explorateur avec un clic droit) qui est très agréable. Des versions 64 bits et 32 bits sont disponibles.

1voto

Adrian Points 11

La réponse acceptée à cette question, en loftysnake , fonctionne pour le répertoire courant mais ne recherche pas dans les sous-dossiers.  Sawny Proposition de une simple modification de la réponse de loftysnake pour le rendre récursif, mais ça ne marche pas, car, alors que le rename commande vous permet de spécifier un lecteur et un chemin d'accès avec un nom de fichier1 (la source), le nom de fichier2 (la destination) doit être un simple nom de fichier.  Pour citer l'aide ( /? ) message,

vous ne pouvez pas spécifier un nouveau lecteur ou chemin pour votre fichier de destination.

Mais move travaille où rename ne le fait pas, donc vous pouvez renommer récursivement les fichiers en minuscules avec cette commande :

for /f "Tokens=*" %f in ('dir /l/b/a-d/s') do (move /y "%f" "%f")

parce qu'il s'avère que Move peut gérer les chemins de répertoire.

La commande ci-dessus fonctionne lorsqu'elle est tapée directement dans l'Invite de commande ( CMD.EXE ).  Si vous voulez faire cela à partir d'un lot ( .BAT ), vous devez doubler le % des personnages :

for /f "Tokens=*" %%f in ('dir /l/b/a-d/s') do (move /y "%%f" "%%f")

Et vous pouvez probablement laisser tomber les parenthèses et le /y et dire juste do move … .

0voto

Mick Points 138

Solution récursive. Mets ça dans un fichier recursiverename.cmd

for /f "Tokens=*" %%f in ('dir /l/b/a-d') do (rename "%%f" "%%f")
for /r /d %%x in (*) do (
    pushd "%%x"
    for /f "Tokens=*" %%f in ('dir /l/b/a-d') do (rename "%%f" "%%f")
    popd
)

SistemesEz.com

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.

Powered by:

X