Un moyen facile de renommer tous les fichiers d'un répertoire dans Windows [fermé]


9

Existe-t-il un moyen simple de renommer tous les fichiers d'un répertoire? PowerShell est-il la voie à suivre?

J'aimerais partir de là:

c:\family_pics\
   img123.jpg
   img124.jpg

pour ça:

c:\family_pics\ 
   family_pics_1.jpg 
   family_pics_2.jpg

Idéalement, je voudrais exécuter un script sur un répertoire qui renommerait tous les fichiers en fonction du nom du répertoire actuel tout en préservant l'extension et parcourrait l'arborescence du répertoire de manière récursive.

Réponses:


16

Partant du principe que tout peut être fait sur une seule ligne de PowerShell (tout comme tout peut aussi être fait sur 1 ligne de Perl), voici le code PS pour un seul répertoire.

$i=0; get-childitem $dirname | foreach-object {

       rename-item "$dirname\$_" $("{0}_{1}{2}" -f $dirname, ++$i, $_.Extension)
}

Pour le faire récursivement, vous devez envelopper ce qui précède dans une fonction, puis l'appeler sur chaque répertoire de votre arborescence. Vous pouvez également remplacer la chaîne de formatage par quelque chose d'un peu plus sophistiqué si vous avez besoin d'utiliser des expressions rationnelles.


10

C'est un peu hacky, mais je l'ai fait pendant 12 ans et je suis assez rapide:

  • Ouvrez une invite de commande dans c: \ family_pics et tapez dir >> dir.xls
  • Ouvrez le fichier dir.xls dans Excel
  • Mettez en surbrillance la première colonne, sélectionnez "Texte dans les colonnes" et ajoutez des sauts de colonne sur les caractères d'espace (en ignorant les doublons)
  • Vous avez maintenant un joli tableau avec vos noms de fichiers actuels, les tailles de fichiers, etc.
  • Ajouter une nouvelle colonne "ren" avant le nom de fichier
  • Ajoutez une nouvelle colonne après le nom de fichier et utilisez les fonctions Excel que vous souhaitez générer le nouveau nom de fichier. Dans votre cas, si vous tapez les deux premiers noms de fichiers, puis double-cliquez sur le coin inférieur droit de la cellule, Excel détectera automatiquement le modèle et générera les noms restants.
  • Enregistrer sous ren.bat
  • Exécutez le fichier batch que vous venez de créer et il renommera tous vos répertoires

Bien que cela ne soit pas immédiatement évident, Excel est très bien adapté à ce type de tâche, car vous pouvez utiliser tout type de formule que vous souhaitez pour générer les nouveaux fichiers, en utilisant les entrées des fichiers existants (horodatage, nom de fichier, taille, etc. ).


Excel est le meilleur générateur de code / script que je connaisse.
GvS

3

Bien que vous puissiez faire des choses avec un fichier batch, j'ai trouvé que plus de contrôle, d'options, etc. et un indice visuel de ce qui est sur le point de se produire est meilleur.

Il existe un outil gratuit appelé CKRename. Le site de l'auteur d'origine semble avoir disparu, mais l'application est entièrement fonctionnelle et assez populaire (je l'utilise depuis 8 ans). Télécharger CKRename

Voici une capture d'écran de celui-ci en action entrez la description de l'image ici


1

Vous pouvez simplement mettre en surbrillance tous ceux que vous voulez dans l'explorateur, puis cliquer avec le bouton droit sur le premier et le renommer et Windows les renommera tous pour vous avec la même convention de dénomination.


Juste essayé à commencer par fileA.m, fileB.m, etc. Istead de fileA_001.m, fileB_002.m, au lieu obtenu fileA_001.m, fileA_001 (1) .m, fileA_001 (2) .m, etc.
jacobsee

1

ReNamer: http://www.den4b.com/

Voir également: Comment renommer une partie d'un nom de fichier à partir d'une sélection de fichiers dans Windows?

Déposez votre dossier contenant des images dans ReNamer (les sous-dossiers seront ajoutés récursivement par défaut). Cliquez sur la colonne Nom pour trier par nom de fichier si vous souhaitez conserver l'ordre séquentiel. Une balise Meta spéciale vous permettra d'utiliser le nom du dossier parent pour renommer. Utilisez les règles de changement de nom suivantes:

  1. Supprimer de la position 1 jusqu'à la fin (extension de saut)
  2. Insérez ": File_FolderName: _" comme préfixe (ignorer l'extension)
  3. Sérialiser incrémentiel à partir de 1 étape 1 répéter 1 comme suffixe (ignorer l'extension)

entrez la description de l'image ici


Renommer +1 était tout simplement génial!
Chris Marisic



0

cela supprime les quatre derniers caractères (généralement l'extension)

dir *.jpg | % { ren $_.Name $_.Name.Substring(0,$_.Name.Length-4) }

Vous devrez peut-être adapter ce qui précède pour gérer les espaces ou vos besoins de changement de nom spécifiques

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.