Mover archivos en subcarpetas a carpetas principales en muchas carpetas

Mover archivos en subcarpetas a carpetas principales en muchas carpetas

Mi programa de importación de fotografías coloca la copia de seguridad de las fotos en una carpeta denominada "importada el FECHA". Estas carpetas se crean como subcarpetas de la carpeta de ubicación deseada. Tengo muchas de estas carpetas "importadas" en varias capas de carpetas. Un ejemplo sería:

C:\pictures\all photos 2013\01jan13\importadas el 18 de enero.

¿Hay alguna forma de escanear desde la carpeta de imágenes a través de cada una de sus subcarpetas y hacer que el programa mueva los archivos de una carpeta "importada" a la carpeta que se encuentra encima? ¡Perdón si esto es confuso!

Gracias por cualquier ayuda

Respuesta1

Esto funciona en Windows 7; No sé sobre otras versiones:

for /r C:\pictures %F in (*.*) do move %F %F\..\..

Notas:

  • for /r C:\pictures %F in (*.*) do …realiza la siguiente declaración una vez para cada archivo en C:\pictures, de forma recursiva, con %Fel nombre del archivo establecido.
  • movemueve un archivo.
  • Aquí se pone complicado. Sabes que eso cd ..te lleva a un nivel superior. Bueno, resulta que puedes decir \Users\rshonaker\Documents\fubar.doc\..y se referirá a \Users\rshonaker\Documents(el directorio en el que se encuentra el archivo), también lo %F\..es el directorio en el que %Fse encuentra el archivo. Y luego %F\..\..está el directorio principal de ese directorio.

Más notas:

  • Úselo con cuidado. Si tiene algún archivo en C:\pictures, esto intentará moverlo a C:\. Si tiene algún archivo en C:\pictures\all photos 2013, esto intentará moverlo a C:\pictures, etc.
  • Si desea poner esto en un script, reemplace todas las apariciones de %Fcon %%F.

información relacionada