Réponses:
for %a in (*) do ren "%a" "00_%a"
Remarques:
for
comme ci-dessus n'est pas conseillée.Utilisez ce qui suit dans un cmd
shell:
for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"
Dans un fichier batch (remplacer %
par %%
):
for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"
Remarque:
Il est essentiel que vous l'utilisiez
FOR /F
et non le simpleFOR
.Le
FOR /F
rassemble le résultat entier de laDIR
commande avant de commencer l'itération, tandis que le simpleFOR
commence l'itération après que le tampon interne est plein, ce qui ajoute un risque de renommer le même fichier plusieurs fois.
comme conseillé par dbenham dans sa réponse pour ajouter "texte" à la fin de plusieurs noms de fichiers :
Pour effectuer cette boucle For sur des dossiers (répertoires) au lieu de fichiers, incluez simplement le /D
commutateur.
for /D %a in (*) do ren "%a" "00_%a"
De for /?
:
FOR / D% variable IN (set) commande DO [paramètres de commande]
If set contains wildcards, then specifies to match against directory names instead of file names.
ren
fonctionne sur les dossiers. La limitation est que "vous ne pouvez pas spécifier un lecteur ou un chemin différent pour la cible.
Ren
.
for /d
également d'avoir le problème d'essayer de traiter les valeurs plusieurs fois (voir également ma réponse).