2009-07-30 20:31:17 +0000 2009-07-30 20:31:17 +0000
126
126
Advertisement

Comment puis-je renommer en masse des fichiers ?

Advertisement

J'ai un tas de fichiers nommés avec un motif 99 - DescriptiveName.txt et j'aimerais supprimer le numéro au début pour n'avoir que DescriptiveName.txt.

Comment puis-je faire cela ? Puis-je le faire à partir de la ligne de commande ou existe-t-il un utilitaire qui peut le faire ?

Advertisement

Réponses (22)

94
94
94
2009-07-30 20:58:54 +0000

Je sais que dans votre titre vous dites “in dos” mais j'ai l'impression que vous cherchez simplement un moyen de le faire et que vous vous demandez si c'est le meilleur moyen.

Le meilleur outil que j'ai trouvé pour cela est Bulk Rename Utility . Ce n'est pas un outil en ligne de commande, mais ils ont une version en ligne de commande si vous voulez vraiment l'utiliser de cette façon. J'ai beaucoup utilisé la version GUI, et elle est très puissante, très rapide et extrêmement facile à utiliser.

60
60
60
2011-07-13 17:30:08 +0000

Un petit script PowerShell :

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

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

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

Qui transforme des choses comme ‘01 - Beginning.mp3’ en ‘Beginning - 01.mp3’.

Utilisez le paramètre -WhatIf sur Rename-Item pour vérifier les renoms avant de les publier.

24
Advertisement
24
24
2009-08-07 17:21:40 +0000

AntRenamer permet de définir assez facilement un schéma de renommage ; il en existe de nombreux autres déjà préparés (et il donne un aperçu des actions) :

Gratuit pour un usage personnel et commercial.

24
24
24
2009-08-07 17:53:34 +0000

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 produit 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 d'entre eux, elle effectue la commande de renommage.

19
Advertisement
19
19
2009-07-30 21:24:47 +0000

old school :

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

Utilisez ensuite un éditeur pour retirer ce dont vous n'avez pas besoin et modifier les parties dont vous avez besoin. Ajoutez un “@echo off” comme première ligne, enregistrez-le et exécutez-le.

17
17
17
2014-03-18 01:33:41 +0000

Une autre option : * Massive File Renamer **

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

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

Voir en action :

13
Advertisement
13
13
2009-08-23 08:56:29 +0000

J'utilise l'outil multi-renoms de Total Commander (ctrl+M) pour ce genre de choses. Leur outil utile, un de trop pour être compté, est facile à utiliser, et peut également employer des expressions régulières et des modèles si nécessaire. Oh, et il vous donne évidemment un aperçu avant de faire des changements.

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

11
11
11
2009-07-30 22:11:57 +0000

L'outil dont je suis satisfait est ReNamer . Il permet également de sauvegarder les règles de renommage, ce qui m'a été utile, car je fais souvent les mêmes renommages.

Voici un exemple de la façon de supprimer du texte avant le premier tiret, mais il y a une foule d'autres règles que vous pouvez définir.

5
Advertisement
5
5
2009-11-27 23:02:30 +0000

J'ai utilisé Free Commander Portable (freeware) pour cela à bon escient :

  1. Sélectionnez ou naviguez vers les fichiers ou répertoires à renommer
  2. Appuyez sur
4
4
4
2013-01-03 10:47:45 +0000

Pour les utilisateurs et développeurs avancés, je suggère RegexRenamer .

Pro’s :

  • Interface utilisateur très simple ;
  • Expressions régulières que les développeurs connaissent bien ;
  • GPLv2 ;

Con’s :

  • Ce n'est pas une ligne de commande ! :)
3
Advertisement
3
3
2009-08-23 06:16:40 +0000

Voici une solution ligne de commande — un programme Java que j'ai écrit spécialement pour faciliter le travail avec les “patterns” dans les noms de fichiers. Il est gratuit et open source, alors n'hésitez pas à le modifier :

RenameWand http://renamewand.sourceforge. net/

Certains exemples d'utilisation pertinents:

Déposez tout ce qui précède le "-" dans le nom de fichier :

java -jar RenameWand.jar "<a> - <b>" "<b>"

Préparez un nombre à 3 chiffres pour le nom de fichier, en le triant selon la dernière modification :

java -jar RenameWand.jar "<a>" "<3|#FT> <a>"

Réorganisez des parties du nom de fichier et modifiez la casse :

java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>" 
                          "<artist.upper> <album.title> - <song>.<ext.lower>"
3
3
3
2009-08-23 09:31:32 +0000

J'ai découvert RenPhoric il y a environ un mois. Superbe. Et c'est free.

Pas d'interface compliquée et j'ai pu rapidement renommer exactement comme je le voulais. Possibilité d'expression régulière. Je n'ai rien utilisé d'autre depuis.

3
Advertisement
3
3
2009-07-30 20:37:17 +0000

Le moyen le plus simple serait d'utiliser Rename Master .

2
2
2
2014-07-04 05:53:01 +0000
@echo off setlocal enabledelayedexpansion set X=5 set FOLDER\_PATH=. pushd %FOLDER\_PATH% for %%f in (\*) do if %%f neq %~nx0 ( set "filename=%%~nf" set "filename=!filename:~%X%!" ren "%%f" "!filename!%%~xf" ) popd

enregistrez ceci dans un fichier batch et exécutez

2
Advertisement
2
2
2013-03-30 20:17:45 +0000

Drôle d'outil de nom et de ligne de commande très puissant, très rapide et extrêmement facile à utiliser. “Trouver et remplacer du texte” FART http://fart-it.sourceforge.net/ WORKS GREAT ! peut également renommer des mots dans des fichiers txt.

USAGE

Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]

Options:
 -h --help Show this help message (ignores other options)
 -q --quiet Suppress output to stdio / stderr
 -V --verbose Show more information
 -r --recursive Process sub-folders recursively
 -c --count Only show filenames, match counts and totals
 -i --ignore-case Case insensitive text comparison
 -v --invert Print lines NOT containing the find string
 -n --line-number Print line number before each line (1-based)
 -w --word Match whole word (uses C syntax, like grep)
 -f --filename Find (and replace) filename instead of contents
 -B --binary Also search (and replace) in binary files (CAUTION)
 -C --c-style Allow C-style extended characters (\xFF&001\t\n\r\ etc.)
    --cvs Skip cvs dirs; execute "cvs edit" before changing files
 -a --adapt Adapt the case of replace_string to found string
 -b --backup Make a backup of each changed file
 -p --preview Do not change the files but print the changes
2
2
2
2013-11-04 09:58:24 +0000

Multi rename script est une alternative open source à l'outil Total Commanders Multi Rename que vous pourriez piloter via script. Il peut utiliser les plugins TC pour les informations sur les métadonnées. https://code.google.com/p/multi-rename-script/

2
Advertisement
2
2
2011-08-14 16:27:25 +0000

J'aime bien Cylog’s WildRename . Il est puissant, mais facile à utiliser, et possède de nombreuses fonctionnalités :

  1. rapide
  2. manipulation de chaînes de caractères
  3. compteurs
  4. jokers
  5. expressions régulières
  6. substitution
  7. conversion de cas
  8. journalisation
  9. simulation (montrer les résultats sans les appliquer réellement)

2
2
2
2012-09-10 15:11:39 +0000

Comme @zdan ci-dessus, j'ai fait cela en ligne de commande (en utilisant “cmd.exe” dans Windows). Il a fallu quelques retouches pour mon cas particulier, mais une petite recherche a permis de le résoudre.

Comme zdan, j'ai sorti la liste dans un fichier TXT, puis j'ai utilisé tokens et delims pour renommer les fichiers en conséquence. Dans mon cas, j'ai commencé avec une liste de fichiers nommés comme suit :

name-01-02-2012.csv

Je voulais que la partie date du fichier soit dans l'ordre a/m/j, avec la partie “nom” à la fin pour qu'il se lise comme ceci :

2012-01-02-name.csv

Pour faire cela en masse, j'ai utilisé le code suivant. Notez qu'en procédant ainsi, TOUTES les parties du nom de fichier sont prises en compte, y compris l'extension “.csv”. La première fois, j'ai fait une erreur.

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

Les tokens sont les “parties” du nom de fichier, les delims sont les séparateurs. Notez que dans mon cas, j'avais 2 délimiteurs (un tiret et un point).

Personnellement, je n'aime pas l'application “Bulk Rename”. Comme d'autres l'ont mentionné, l'interface graphique est atroce et pas très intuitive. Avec un peu de recherche et un codage simple, ces choses peuvent être faites beaucoup plus efficacement et rapidement.

1
Advertisement
1
1
2014-12-01 02:56:58 +0000

J'ai développé un utilitaire de ligne de commande hybride JScript/lot appelé JREN.BAT ](http://www.dostips.com/forum/viewtopic.php?f=3&t=6081) qui peut renommer des fichiers ou des dossiers en effectuant une recherche par expression régulière et en remplaçant les noms. Il s'agit d'un script pur qui fonctionnera en natif sur n'importe quelle machine Windows à partir de XP. Une documentation complète est intégrée dans le script.

En supposant que JREN.BAT se trouve dans votre répertoire actuel, ou mieux encore, quelque part dans votre chemin, alors votre tâche de renommage devient triviale.

jren "^\d+[-]+(.+)\.txt$" "$1" /i

ou

jren "^\d+[-]+(?=.+\.)" "" /fm "*.txt"

Il existe de nombreuses options, y compris l'option /S qui exécute récursivement le renommage sur les sous-répertoires.

1
1
1
2013-03-02 20:08:23 +0000

J'utilise Blackboard pour administrer des cours dans une université. Lorsque je télécharge un devoir en masse (dans Blackboard, cliquez en haut de la colonne de notation, puis “téléchargement du fichier du devoir”), Blackboard ajoute un tas de choses supplémentaires au nom du fichier - ce qui rend souvent le nom du fichier trop long pour être valable sous Windows. Voici à quoi ils ressemblent :

Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx

Et c'est ce que je voulais

studentname.docx

J'ai donc utilisé l'approche que @zdan et @gtr1971 conseillaient, en ouvrant une fenêtre de commande sur le dossier avec les fichiers à l'intérieur (CMD.EXE). Ensuite, lancez cette commande pour mettre tous les noms de fichiers dans un document.

dir /b >filelist.txt

Éditez le document et supprimez les noms de dossiers, etc.

Utilisez cette commande pour remplacer le nom de fichier ajouté au Blackboard par seulement le nom d'utilisateur et l'extension de fichier.

for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n

J'espère que cela aidera aussi quelqu'un d'autre.

1
Advertisement
1
1
2013-07-10 23:07:13 +0000

Voici un autre programme simple appelé File Attribute Changer que vous pouvez utiliser pour renommer des fichiers. C'est un programme portable, vous pouvez donc le transporter sur une clé USB. http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

0
0
0
2015-03-18 00:47:18 +0000

Si vous avez besoin d'un pouvoir sérieux et êtes prêt à débourser de l'argent… PowerGrep ](http://www.powergrep.com/) est l'un des outils les plus puissants et les plus polyvalents du marché… vous pouvez renommer presque tout avec PowerGrep… même rechercher et remplacer des binaires… il est créé par RegEx Guru, Jan Goyvaerts .

Questions connexes

3
19
10
28
8
Advertisement