Mover o conteúdo das subpastas um nível acima (centenas de pastas pai, todas as subpastas têm o mesmo nome)

0

Existe uma maneira interna (WIN7) ou utilitário de terceiros que eu possa usar para me permitir mover o conteúdo das subpastas das minhas centenas de pastas pai para um nível acima?

Para ilustrar:

PARENT1/gallery/filex.jpg
PARENT1/gallery/filey.jpg
PARENT1/gallery/filez.jpg
PARENT2/gallery/filex.jpg
PARENT2/gallery/filey.jpg
PARENT2/gallery/filez.jpg

O que eu quero fazer (em uma única ação em lote, não individual por pasta) é:

PARENT1/filex.jpg
PARENT1/filey.jpg
PARENT1/filez.jpg
PARENT2/filex.jpg
PARENT2/filey.jpg
PARENT2/filez.jpg

Os pais têm nomes variados, mas todas as subpastas têm o mesmo nome "galeria". Existe alguma maneira rápida e indolor para fazer isso? Eu tenho mais ou menos 650 pastas PARENT.

    
por Katylar 25.05.2013 / 10:33

1 resposta

4

Você pode fazer com que o Windows execute o mesmo comando para todas as 650 pastas seqüencialmente com um simples loop for /D . Vá para o diretório que contém os pais e execute o seguinte comando:

for /D %i in (.\*) do @move %i\gallery\* %i\

Opcionalmente, você pode excluir as pastas "galeria" vazias usando "rmdir" sem o sinalizador / S, por exemplo:

for /D %i in (.\*) do @(move %i\gallery\* %i\ && rmdir %i\gallery)

Para obter mais controle sobre as operações de arquivo, talvez você queira examinar robocopy , que é muito mais avançado que move . Observe também que os espaços nos nomes de diretório geralmente são analisados como delimitadores. Por exemplo, rmdir parent 1 removerá os diretórios 'pai' e '1', mas não 'pai 1'. Se seus diretórios contiverem espaços, use aspas, por exemplo:

for /D %i in (.\*) do @move "%i\gallery\*" "%i\"
    
por 25.05.2013 / 14:06

Tags