Meu programa de importação de fotos coloca a cópia de backup das fotos em uma pasta chamada "importada em DATA". Essas pastas são criadas como subpastas da pasta de localização desejada. Tenho muitas dessas pastas "importadas" em várias camadas de pastas. Um exemplo seria:
C:\fotos\todas as fotos 2013\01jan13\importadas em 18 de janeiro.
Existe uma maneira de digitalizar a pasta de imagens através de cada uma de suas subpastas e fazer com que o programa mova todos os arquivos de uma pasta "importada em" para a pasta acima dela? Desculpe se isso é confuso!
Obrigado por qualquer ajuda
Responder1
Isso funciona no Windows 7; Não sei sobre outras versões:
for /r C:\pictures %F in (*.*) do move %F %F\..\..
Notas:
for /r C:\pictures %F in (*.*) do …
executa a seguinte instrução uma vez para cada arquivo emC:\pictures
, recursivamente, com%F
definido como o nome do arquivo.move
move um arquivo.- Aqui fica complicado. Você sabe que isso
cd ..
leva você a um nível acima. Bem, acontece que você pode dizer\Users\rshonaker\Documents\fubar.doc\..
, e ele se referirá a\Users\rshonaker\Documents
(o diretório em que o arquivo está), assim%F\..
como o diretório em que o arquivo%F
está. E então%F\..\..
é o pai desse diretório.
Mais notas:
- Use com cuidado. Se você tiver algum arquivo em
C:\pictures
, isso tentará movê-lo paraC:\
. Se você tiver algum arquivo emC:\pictures\all photos 2013
, isso tentará movê-lo paraC:\pictures
, etc. - Se você quiser colocar isso em um script, substitua todas as ocorrências de
%F
por%%F
.