Isso funciona no Windows 7; Eu 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 declaração uma vez para cada arquivo emC:\pictures
, de forma recursiva, com%F
definido para o nome do arquivo. -
move
move um arquivo. - Aqui fica complicado.
Você sabe que
cd ..
leva você até um nível. Bem, acontece que você pode dizer\Users\rshonaker\Documents\fubar.doc\..
, e se referirá a\Users\rshonaker\Documents
(o diretório em que o arquivo está) então%F\..
é o diretório no qual o arquivo%F
está. E então%F\..\..
é o pai desse diretório.
Mais notas:
- Use com cuidado.
Se você tiver arquivos em
C:\pictures
, isso tentará movê-los paraC:\
. Se você tiver arquivos emC:\pictures\all photos 2013
, isso tentará movê-los paraC:\pictures
, etc. - Se você quiser colocar isso em um script, substitua todas as ocorrências de
%F
por%%F
.