Comment utiliser la ligne de commande Windows pour modifier les extensions de milliers de fichiers en *****.jpg
?
Vous pouvez utiliser ren
(comme dans renommer ):
ren *.XXX *.YYY
Et bien sûr, basculez entre XXX et YYY pour les extensions appropriées. Cela changera de XXX en YYY. Si vous souhaitez modifier toutes les extensions, utilisez à nouveau le caractère générique:
ren *.* *.YYY
Une façon de faire cela récursivement consiste à utiliser la commande FOR
. Il peut être utilisé avec l'option /R
pour appliquer de manière récursive une commande aux fichiers correspondants. Par exemple:
for /R %x in (*.txt) do ren "%x" *.renamed
changera toutes les extensions .txt
en .renamed
récursivement, en commençant dans le répertoire actuel. %x
est la variable qui contient les noms de fichiers correspondants.
Et, comme vous avez des milliers de fichiers, veillez à ce que le curseur se remette à clignoter pour indiquer que le travail est terminé.
Remarque: cela ne fonctionne que sur cmd. Ne fonctionnera pas sur Powershell ou Bash
sur CMD
type
ren *.* *.jpg
. sélectionnera tous les fichiers et renommera en * (quel que soit leur nom) plus l'extension en jpg
Le comportement de changement de nom est parfois "moins qu'intuitif"; par exemple...
ren * .THM * .jpg renommera vos fichiers THM pour avoir une extension .jpg. par exemple: GEDC003.THM sera GEDC003.jpg
ren * .THM * b.jpg renommera vos fichiers THM en * .THMb.jpg. Par exemple: GEDC004.THM deviendra GEDC004.THMb.jpg
ren * .THM * .b.jpg renommera vos fichiers THM en * .b.jpg, par exemple: GEDC005.THM deviendra GEDC005.b.jpg
NOTE: pas pour Windows
En utilisant ren-1.0, la forme correcte est:
"ren *.*" "#2.jpg"
De man ren
Le modèle de remplacement est un autre nom de fichier avec des index génériques incorporés, chacun étant constitué du caractère # suivi d'un chiffre compris entre 1 et 9. Dans le nouveau nom d'un fichier correspondant, les index génériques sont remplacés par les caractères réels correspondant aux références référencées. caractères génériques dans le nom de fichier d'origine.
et
Notez que le shell développe normalement les caractères génériques * et?, Ce qui dans le cas de ren est indésirable. Ainsi, dans la plupart des cas, il est nécessaire de mettre le modèle de recherche entre guillemets.
c'est simple
ren *.* *.jpg
essayez ceci dans l'invite de commande
Pour les personnes cherchant à le faire dans des fichiers de commandes, ce code fonctionne:
FOR /R "C:\Users\jonathan\Desktop\test" %%f IN (*.jpg) DO REN "%%f" *.png
Dans cet exemple, tous les fichiers avec l'extension .jpg du répertoire C:\Users\jonathan\Desktop\test sont remplacés par * .png.
Renommez plusieurs extensions de fichiers:
Vous voulez changer ringtone1.mp3
, ringtone2.mp3
en ringtone1.wav
, ringtone2.wav
Voici comment faire cela: Je suis dans le lecteur d sur l'invite de commande (CMD) donc j'utilise:
d:\>ren *.* *.wav
Ceci est juste un exemple d'extension de fichier, vous pouvez utiliser n'importe quel type d'extension de fichier comme WAV, MP3, JPG, GIF, BMP, PDF, DOC, DOCX, TXT, cela dépend de votre système d'exploitation.
Et, comme vous avez des milliers de fichiers, veillez à ce que le curseur se remette à clignoter pour indiquer que le travail est terminé.
Dans mon cas, j'avais un répertoire avec plus de 800 fichiers se terminant par .StoredProcedure.sql
(ils ont été scriptés avec SSMS ).
Les solutions affichées ci-dessus n'ont pas fonctionné. Mais je suis venu avec ceci:
(Basé sur les réponses à programmation par lots - obtenir le chemin relatif du fichier )
@echo off
setlocal enabledelayedexpansion
for %%f in (*) do (
set B=%%f
set B=!B:%CD%\=!
ren "!B!" "!B:.StoredProcedure=!"
)
Le script ci-dessus supprime la sous-chaîne .StoredProcedure
du nom de fichier. Je suis sûr qu'il peut être adapté pour couvrir davantage de cas, demander des informations et être globalement plus générique.