Question Comment puis-je renommer des fichiers en masse?


J'ai un tas de fichiers nommés avec le modèle 99 - DescriptiveName.txt et je voudrais supprimer le numéro de l'avant, donc je viens d'avoir DescriptiveName.txt.

Comment puis-je faire ceci? Puis-je le faire depuis la ligne de commande ou existe-t-il un utilitaire capable de le faire?


117


origine




Réponses:


Je sais dans votre titre que vous dites "in dos", mais j'ai l'impression que vous cherchez simplement un moyen de le faire et vous vous demandez si c'est la meilleure façon.

Le meilleur outil absolu que j'ai trouvé pour cela est Utilitaire Renommer en vrac.

Bulk Rename Utility

Ce n'est pas un outil en ligne de commande, mais ils ont un version en ligne de commande si vous voulez vraiment l'utiliser de cette façon.

J'ai beaucoup utilisé la version GUI, très puissante, très rapide et extrêmement facile à utiliser.

Oh, et c'est GRATUIT pour usage personnel.


91



Malheureusement, l'outil n'est pas gratuit pour un usage commercial :( - AntonK
C'est pourquoi j'ai dit que c'était gratuit pour un usage personnel. - Jim McKeeth
C'est un outil super rapide. Il a résolu le problème des fichiers 6.000 en quelques secondes, en utilisant plusieurs logiques de recherche et de remplacement. C'est comme utiliser Notepad ++ mais éditer des milliers de fichiers. Une excellente solution, merci! - Peanuts


Un petit script PowerShell:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }

Combiné à des expressions régulières plus complexes, cela pourrait devenir quelque chose comme:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

Ce qui transforme les choses comme '01 - Beginning.mp3 'en' Beginning - 01.mp3 '.

Utilisez le -WhatIf paramètre sur Rename-Item vérifier les noms avant de les émettre.


55



@sysrqb, s'il vous plaît rechercher un peu plus. - Joey
Le remplacement ne nécessite-t-il pas deux expressions de chaîne? Le second en a deux, le premier pas. ... -replace '\d+ - ',''. En outre, je crois que le premier est meilleur, en supprimant tout simplement le début en utilisant l'expression régulière. Bien que je crois que vous devriez inclure le ^ anchor au début de l'expression, il ne fera que correspondre aux noms commençant par des nombres. - Xalorous
@Xalorous: Eh bien, vous pouvez simplement l'essayer. -replace peut avoir un seul argument sur le côté droit, auquel cas le second est implicitement la chaîne vide. - Joey
Cela m'a sauvé .. Bulk Rename Utility se bloque maintenant et j'ai essayé beaucoup d'autres solutions. C'est beaucoup mieux pour les personnes qui sont à l'aise avec regexp. Merci beaucoup !! - Inkh Su Tesou


Si vous voulez vraiment utiliser la ligne de commande Windows (si vous ne voulez pas télécharger quelque chose), vous pouvez le faire comme ceci:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

La première ligne affiche la liste des fichiers dans un fichier appelé fileList.txt. La deuxième ligne sépare chacun des noms de la liste en 3 parties, le #, le "-" et le reste du nom. Pour chacun de ceux-ci, la commande rename.


24



Supprimer la première ligne pour la simplifier et faire: for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l
Je sais que c'est vieux mais c'est toujours une réponse solide - seul le% l (% L) devrait être% k (% K) [l'incrémentation des jetons de% i (% I) alors I, J, K ...] - ongle


AntRenamer il est assez facile de définir un modèle de changement de nom; il y en a déjà beaucoup (et cela donne un aperçu des actions):

AntRenamer

Gratuit pour un usage personnel et commercial.


24





vieille école:

Vous pouvez faire un DIR et rediriger la sortie vers un fichier, comme dans DIR * .TXT> TEMP.BAT

Ensuite, utilisez un éditeur pour retirer ce dont vous n'avez pas besoin et modifiez les pièces dont vous avez besoin. Ajoutez un "@echo off" comme première ligne, enregistrez-le et exécutez-le.


18



J'ai eu cette page de référence d'un doctorat de la vieille école dans ceci: dostips.com/DosCommandIndex.htm; C'est incroyable ce que vous pouvez faire avec (bon?) L'ancien DOS! - nik


Une autre option: Massive File Renamer

Il permet facilement Renommer plusieurs fichiers et extensions de fichiers. C'est très simple et rapide!

Pour les utilisateurs avancés et les développeurs, il est possible d'utiliser expressions régulières.

Voir en action:

enter image description here


16



Btw comment pouvons-nous le sélectionner pour ouvrir tous les fichiers dans les sous-dossiers? J'ai un dossier racine contenant environ 50 sous-dossiers (récursivement) et plusieurs fichiers. - Pacerier
@Pacerier Je pense que le sélecteur de fichiers Java ne le permet pas. J'ai eu l'idée de permettre la sélection d'un dossier et la recherche récursive peut être incluse. Je vais le noter et l'ajouter dans une prochaine version! - IvanRF


j'utilise Commandant TotalL'outil multi-renommer (ctrl + M) pour des choses comme ça. Leur outil utile, l'un des trop nombreux à compter, est facile à utiliser et peut également utiliser des expressions régulières et des modèles si nécessaire. Oh, et cela vous donne évidemment un aperçu avant de faire des changements.

C'est la troisième ou la quatrième question à laquelle j'ai répondu en recommandant Total Commander ... Je devrais recevoir une commission de leur part ;-)


13





L'outil dont je suis satisfait est ReNamer. Il prend également en charge la sauvegarde des règles de changement de nom, ce qui m’a été utile, car je répète souvent les mêmes changements.

Vous trouverez ci-dessous un exemple de suppression de texte avant le premier tiret, mais vous pouvez définir de nombreuses autres règles.

enter image description here


11