J'ai une liste de fichiers qui sont dans le format à gauche. Je veux ajouter une chaîne à chaque nom de fichier, mais avant l'extension, comme indiqué:
File 1.txt -> File 1 version 1.txt
File 2.txt -> File 2 version 1.txt
File 3.txt -> File 3 version 1.txt
File 4.txt -> File 4 version 1.txt
...
Dans chaque cas, la chaîne ajoutée est la même pour tous les fichiers.
Cela semble être une tâche si simple, mais j’ai du mal à le mettre dans un fichier de commandes.
J'ai essayé la commande ren
et suivi certains des exemples sur cette page , mais les noms de fichier résultants ajoutent la chaîne après l'extension:
File 1.txt version 1.txt
pour les noms de fichiers plus longs, vous devrez ajouter un peu plus de ?
dans le bloc avec la masse de ?????????
ren *.?* ????????????????????????????????????????????????????????" version 1".*
Au lieu de compter sur les bizarreries non documentées de ren , pourquoi ne pas le faire correctement?
for %a in (*.txt) do ren "%~a" "%~na version 1%~xa"
Si vous souhaitez utiliser ceci dans un fichier batch, n'oubliez pas de doubler chaque signe%.
Pour les personnes inexpérimentées avec la commande (comme moi), il existe deux logiciels qui permettent de renommer en bloc très facilement:
Je voulais ajouter "_A" à plusieurs fichiers et voici comment je l'ai fait.
J'ai d'abord supprimé l'extension, ajouté le suffixe, puis modifié l'extension à l'original. Cela a sûrement fonctionné pour moi et a gardé le code de lot simple, car je ne suis pas un grand programmeur.
@ECHO OFF
REN *.pdf *.
REN *. *_A.
REN *. *.pdf
La solution de @ bwDraco était bonne mais aurait pu être simplifiée. Mon ensemble de fichiers était tous * .jpg et je voulais les renommer tous * c.jpg. Vous avez seulement besoin de 2 étapes pour cela, pas 3:
ren "{filepath}\*.jpg" *.
ren "{filepath}\*" *c.jpg
Récursivement à travers les sous-dossiers
#!/bin/bash
# Warning: globstar excludes hidden directories.
# Turn on recursive globbing (in this script) or exit if the option is not supported:
shopt -s globstar || exit
for f in **
do
if [ -f "$f" ]; then
extn=${f##*.} # save the extension of the file
#mv "$f" "${f%.*}"_suffix.${extn};
mv "$f" "${f%.*} version 1".${extn};
fi
done