140 votes

Comment puis-je renommer des fichiers en masse ?

J'ai un tas de fichiers nommés avec le motif 99 - DescriptiveName.txt et j'aimerais enlever le numéro de l'avant pour avoir juste DescriptiveName.txt .

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

2voto

Christophe Herreman Points 11844

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 de TC pour les informations sur les métadonnées.

https://code.google.com/p/multi-rename-script/ http://multi-rename-script.googlecode.com/svn/trunk/docs/res/MRS.PNG

2voto

Alie Points 1
@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 ce fichier dans un fichier batch et exécutez-le

1voto

Webmentorman Points 1

J'utilise Blackboard pour administrer des cours dans une université. Lorsque je télécharge un devoir en masse (dans Blackboard, cliquez sur le haut de la colonne de notation, puis sur "téléchargement du fichier de devoir"), Blackboard ajoute un tas d'informations supplémentaires au nom du fichier - ce qui rend souvent 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 conseillée par @zdan et @gtr1971, en ouvrant une fenêtre de commande sur le dossier contenant les fichiers (CMD.EXE). Puis lancer cette commande pour mettre tous les noms de fichiers dans un document.

dir /b >filelist.txt

Modifiez le document et supprimez les noms de dossiers, etc.

Utilisez cette commande pour remplacer le nom de fichier ajouté par Blackboard par le nom d'utilisateur et l'extension du 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 quelqu'un d'autre.

1voto

JJ Zabkar Points 510

Voici un autre programme simple appelé File Attribute Changer que vous pouvez utiliser pour renommer des fichiers. Il s'agit d'un programme portable, que vous pouvez donc transporter sur une clé USB.

http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml

1voto

dbenham Points 10555

J'ai développé un utilitaire de ligne de commande hybride JScript/batch appelé JREN.BAT qui peut renommer des fichiers ou des dossiers en effectuant une recherche et un remplacement par expression régulière sur les noms. C'est un script pur qui fonctionnera nativement sur toute 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, votre tâche de renommage devient alors triviale.

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

o

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

Il existe de nombreuses options, dont le /S qui effectue récursivement le renommage sur les sous-répertoires.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X