Mover archivos que contengan un texto determinado de forma recursiva

Esta vez vamos a ver como podemos mover archivos que contengan una determinada palabra, un directorio concreto y sus subdirectorios, de manera recursiva. En ocasiones podemos tener la necesidad de, dentro de una carpeta con muchos directorios, subdirectorios y ficheros, mover a una carpeta determinada los ficheros que cumplan un patrón determinado.

Por ejemplo, imaginad que tenemos un directorio/subdirectorios con miles de ficheros de audio, con metadatos en el nombre y queremos hacer una selección automática de todos los ficheros de audio que en la etiqueta del nombre contengan la palabra VENTAS. Podríamos ir directorio a directorio buscando la palabra VENTAS y cortando y pegando en una carpeta o podríamos usar la búsqueda de windows y que nos diera los resultados, pero seguro que el siguiente comando os puede resultar más que útil

FOR /R "C:\DIRECTORIO_AUDIOS\" %%G IN (*VENTAS*.mp3) DO move "%%G" "C:\AUDIOS_VENTAS\"

Copiamos este código, lo guardamos en un fichero.bat y lo ejecutamos. Automáticamente va a volcar todos los audios en mp3 que contengan la palabra VENTAS en la carpeta C:\AUDIOS_VENTAS.

A partir de aquí podemos aplicar este pequeño codigo a cualquier ejemplo que se os ocurra.

Espero que os sirva de ayuda 😉

Sergio Martín
Más de 10 años de experiencia liderando, gestionando y ejectuando proyectos en diferentes ámbitos siempre bajo el foco tecnológico.

4 comentarios

  1. Amigo necesito mover distintos archivos con distintos nombres compuestos es decir en ves que diga ventas solamente que diga (las ventas de junio) por ejemplo que hay que hacer

    1. Hola,

      prueba a guardar esta linea en un fichero con extensión .bat

      FOR /R «C:\test\» %%G IN (*VENTAS*JUNIO*.txt) DO move «%%G» «C:\test\VENTAS»

      Si tienes estos ficheros:

      VENTAS DE JULIO 2010.txt
      VENTAS DE AGOSTO 2010.txt
      VENTAS DE JUNIO 2010.txt
      VENTAS DE JUNIO 2011.txt

      debería moverte solo las de JUNIO a la carpeta VENTAS.

      Saludos!!

  2. Buenos días: Excelentes soluciones. Una pregunta, tengo un archivo txt (ejm: lista 100.txt) que contiene nombres de 100 canciones de una carpeta (D:\Music\320p) que contiene 2000 canciones. Como hago para mover la lista (txt) de 100 canciones a otra carpeta. Muchas gracias por su apoyo.
    Saludos

  3. Amigo Sergio mi saludo y respeto, tengo un .bat que me copia un archivo en una red local desde el pc A al pc B, pero como son muchos equipos se me complica ya que, por ejemplo quiero copiar a 15 pc el archivo XY desde la pc A debo ir una a una solicitando el nombre del equipo y se cierra el .bat, es decir coloco el equipo B copia el archivo y se cierra, debo abrir otra vez el .bat, me me gustaría que me orientaras para hacerlo recursivo, que luego de copiar el archivo XY en B me pregunte si deseo copiarlo en otra pc o termine la ejecución

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *