J'ai un tas de fichiers nommés avec le modèle 99 - DescriptiveName.txt
et j'aimerais supprimer le numéro de l'avant pour que je n'ai que 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?
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 Utilitaire de changement de nom en bloc .
Ce n'est pas un outil de 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 graphique, et elle est très puissante, très rapide et extrêmement facile à utiliser.
Oh, et c’estGRATUITpour usage personnel.
Un petit script PowerShell:
$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }
Combiné avec des expressions régulières plus complexes, ceci pourrait devenir quelque chose comme:
ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }
Ce qui transforme des choses comme '01 - Beginning.mp3 'en' Beginning - 01.mp3 '.
Utilisez le paramètre -WhatIf
sur Rename-Item
pour vérifier les renomations avant de les émettre.
AntRenamer facilite la définition d'un modèle de changement de nom; il y a beaucoup de ceux déjà préparés (et cela donne un aperçu des actions):
Gratuit pour un usage personnel et commercial.
Si vous voulez vraiment utiliser la ligne de commande de 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 il fait la commande renommer.
vieille école:
Vous pouvez créer un répertoire DIR et rediriger la sortie vers un fichier, comme dans DIR * .TXT> TEMP.BAT
Ensuite, utilisez un éditeur pour extraire 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.
Une autre option:Massive File Renamer
Il permet de 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 .
Voyez-le en action:
J'utilise plusieurs/renommer l'outil (ctrl + M) Total Commander pour des choses comme ça. Leur outil utile, trop nombreux pour être compté, 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 d’apporter des modifications.
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 ;-)
L'outil dont je suis satisfait est ReNamer . Il prend également en charge la sauvegarde des règles de renommage, ce qui m’a été utile, car je fais souvent les mêmes renommages.
Vous trouverez ci-dessous un exemple de suppression de texte avant le premier tiret, mais vous pouvez définir de nombreuses autres règles.
J'ai utilisé Free Commander Portable (freeware) à cet effet:
Pour les utilisateurs avancés et les développeurs, je suggérerais RegexRenamer .
Avantages:
Les inconvénients:
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 ce que je voulais. Expression régulière capable. Je n'ai rien utilisé d'autre depuis.
Le moyen le plus simple serait d'utiliser Renommer Maître .
Voici unligne de commande _ solution --- un programme Java que j'ai écrit spécialement pour faciliter le travail avec des "modèles" dans les noms de fichiers. C'est gratuit et open source, alors n'hésitez pas à le modifier:
RenameWand
http://renamewand.sourceforge.net/
Quelques exemples d'utilisation pertinents:
Déposez tout ce qui précède le "-"
dans le nom du fichier:
Java -jar RenameWand.jar "<a> - <b>" "<b>"
Ajoutez un numéro à 3 chiffres au nom du fichier, en triant par heure de la dernière modification:
Java -jar RenameWand.jar "<a>" "<3|#FT> <a>"
Réorganisez des parties du nom de fichier et changez la casse:
Java -jar RenameWand.jar "<album> - <artist> - <song>.<ext>"
"<artist.upper> <album.title> - <song>.<ext.lower>"
Comme @zdan ci-dessus, je l'ai fait par ligne de commande (en utilisant "cmd.exe" dans Windows). Cela a pris un peu de bricolage pour mon cas particulier, mais un peu de recherche a résolu le problème.
Comme zdan, je produis la liste dans un fichier TXT, puis utilisais 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 j/m/j, avec la partie "nom" à la fin pour que cela se lise comme suit:
2012-01-02-name.csv
Pour faire cela en masse, j'ai utilisé le code suivant. Notez que lorsque vous procédez ainsi, TOUTES les parties du nom de fichier sont prises en compte, y compris l’extension ".csv". Cela m'a gaffé la première fois.
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 ne me soucie pas de 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 accomplies beaucoup plus efficacement et rapidement.
Nom drôle et outil de ligne de commande très puissant, très rapide et extrêmement facile à utiliser. "Trouver et remplacer le texte" FART http://fart-it.sourceforge.net/ WORKS GREAT! peut renommer des mots dans des fichiers txt aussi.
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\0\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
Le script de renommage multiple est une alternative open source à l'outil Total Renommer de Total Commanders que vous pouvez piloter via un script. Il peut utiliser les plugins TC pour les informations de métadonnées.
@ echo off setlocal enabledelayededpansion set X = 5 set FOLDER_PATH =. pushd% FOLDER_PATH% pour %% f in (*) faire si %% f neq% ~ nx0 ( définir "nomfichier = %% ~ nf" définir "nomfichier =! nomfichier: ~% X%!" ren "%% f" "! nom de fichier! %% ~ xf" ) popd
enregistrer cela dans un fichier de commandes et exécuter
J'aime Cylog’s WildRename . Il est puissant, mais facile à utiliser et présente de nombreuses fonctionnalités:
J'utilise Blackboard pour administrer des cours dans une université. Lorsque je télécharge une assignation en masse (dans Blackboard, cliquez en haut de la colonne de notation, puis "télécharger le fichier de l'affectation". Blackboard ajoute un tas de choses supplémentaires au nom du fichier - ce qui rend le nom du fichier trop long pour être valide 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 recommandée par @zdan et @ gtr1971, en ouvrant une fenêtre de commande sur le dossier contenant les fichiers (CMD.EXE). Ensuite, exécutez cette commande pour mettre tous les noms de fichiers dans un document.
dir /b >filelist.txt
Editez le document et supprimez les noms de dossiers, etc.
Utilisez cette commande pour remplacer les éléments de nom de fichier ajoutés au tableau noir par uniquement 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 aide aussi quelqu'un d'autre.
J'ai développé un utilitaire de ligne de commande JScript/batch hybride appelé JREN.BAT qui permet de renommer des fichiers ou des dossiers en effectuant une recherche par expression régulière et en remplaçant les noms. C'est un script pur qui s'exécutera de manière native sur n'importe quelle machine Windows à partir de XP forward. Une documentation complète est intégrée au script.
En supposant que JREN.BAT se trouve dans votre répertoire actuel ou, mieux encore, quelque part dans votre chemin, votre tâche de changement de nom devient triviale.
jren "^\d+[ -]+(.+)\.txt$" "$1" /i
ou
jren "^\d+[ -]+(?=.+\.)" "" /fm "*.txt"
Il existe de nombreuses options, y compris l'option /S
qui effectue le changement de nom de manière récursive sur les sous-répertoires.
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.
Si vous avez besoin d'énergie sérieuse et que vous êtes prêt à dépenser de l'argent ... PowerGrep est l'un des outils les plus puissants et les plus polyvalents du marché ... vous pouvez renommer presque n'importe quoi avec PowerGrep ... même la recherche binaire et remplacer ... il est créé par RegEx Guru, Jan Goyvaerts .