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 enC:\pictures
, de forma recursiva, con%F
el nombre del archivo establecido.move
mueve 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%F
se 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 aC:\
. Si tiene algún archivo enC:\pictures\all photos 2013
, esto intentará moverlo aC:\pictures
, etc. - Si desea poner esto en un script, reemplace todas las apariciones de
%F
con%%F
.