¿Cómo agregar un prefijo a todos los archivos y carpetas en una carpeta? (ventanas)

14

El siguiente comando solo cambia el nombre de los archivos pero no las carpetas.

for %a in (*) do ren "%a" "00_%a"

MatMis
fuente
¿Tiene absolutamente que usar un archivo por lotes? ¿No puedes usar un programa como Rename Master para hacer esto?
Dour High Arch

Respuestas:

15

El siguiente comando solo cambia el nombre de los archivos pero no las carpetas.

for %a in (*) do ren "%a" "00_%a"

Notas:

  • forNo se recomienda el uso como se indica arriba.
  • Existe la posibilidad de que los archivos puedan renombrarse varias veces.
  • Vea a continuación la razón por la cual.

Use lo siguiente en un cmdshell:

for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"

En un archivo por lotes (reemplace %con %%):

for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"

Nota:

Es crítico que uses FOR /Fy no lo simple FOR.

Los FOR /Ffrunces el resultado completo de la DIRorden antes de que comience la iteración, mientras que el sencillo FORcomienza la iteración después de la memoria intermedia interna está llena, lo que añade un riesgo de cambiar el nombre del mismo archivo varias veces.

como lo aconsejó dbenham en su respuesta para agregar "texto" al final de varios nombres de archivo :


Otras lecturas

DavidPostill
fuente
0

Para realizar este bucle For en carpetas (directorios) en lugar de archivos, simplemente incluya el /Dinterruptor.

for /D %a in (*) do ren "%a" "00_%a"

De for /?:

FOR / D% variable IN (set) DO comando [parámetros del comando]

If set contains wildcards, then specifies to match against directory
names instead of file names.
Ƭᴇcʜιᴇ007
fuente
renfunciona en carpetas. La limitación es que "no puede especificar una unidad o ruta diferente para el destino.
DavidPostill
@DavidPostill Sí, era un viejo hábito que se arrastraba, lo volví a cambiar Ren.
Ƭᴇcʜιᴇ007
Puede hacer tanto archivos como carpetas en un solo comando (vea mi respuesta). Y sospecho for /dque también puede tener el problema de tratar de procesar valores varias veces (también vea mi respuesta).
DavidPostill