Réponses:
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 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'est GRATUIT pour un 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 -WhatIf
paramètre on Rename-Item
pour vérifier les renames avant de les émettre.
... -replace '\d+ - ',''
. En outre, je crois que le premier est meilleur, supprimant simplement le début en utilisant regex. Bien que je pense que vous devriez inclure l’ancre ^ au début de l’expression pour qu’elle ne corresponde qu’aux noms commençant par des nombres.
-replace
peut n’avoir qu’un seul argument à droite, auquel cas le second est implicitement la chaîne vide.
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.
for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l
Avec AntRenamer, il est assez facile de définir 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.
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 renommer facilement 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 des expressions régulières .
Voyez-le en action:
J'utilise l' outil multi-renommage de Total Commander (ctrl + M) pour des choses comme celle-ci. 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 j’effectue souvent les mêmes renommages.
Vous trouverez ci-dessous un exemple de suppression de texte avant le premier tiret, mais vous pouvez définir d’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:
Le moyen le plus simple serait d'utiliser Rename Master .
Voici une solution en ligne de commande - un programme Java que j’ai écrit pour faciliter le travail avec les "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 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>"
J'ai découvert RenPhoric il y a environ un mois. Superbe. Et c'est gratuit .
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.
J'aime le nom sauvage de Cylog . Il est puissant, mais facile à utiliser et possède de nombreuses fonctionnalités:
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 sortie la liste dans un fichier TXT, puis utilisé tokens
et delims
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 le faites de cette façon, TOUTES les parties du nom de fichier sont considérées, 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
Ce tokens
sont les "parties" du nom de fichier, ce 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 faites beaucoup plus efficacement et rapidement.
Nom amusant 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
-f
option, telle que listée.
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.
@Écho off setlocal enabledelayedexpansion set X = 5 définissez FOLDER_PATH =. pushd% FOLDER_PATH% pour %% f in (*) faire si %% f neq% ~ nx0 ( set "nom_fichier = %% ~ nf" définir "nom_fichier =! nomfichier: ~% X%!" ren "%% f" "! nomfichier! %% ~ xf" ) popd
enregistrer ceci dans un fichier de commandes et exécuter
set /p "X=Enter the value for X: "
J'utilise Blackboard pour administrer des cours dans une université. Lorsque je télécharge une assignation en masse (dans Blackboard, cliquez sur 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 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.
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.
J'ai développé un utilitaire de ligne de commande hybride JScript / batch 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, notamment celle /S
qui effectue de manière récursive le changement de nom sur des sous-répertoires.
Si vous avez besoin d'énergie sérieuse et que vous êtes prêt à débourser 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 et le remplacement binaires ... il a été créé par Jan Goyvaerts , gourou de RegEx .