Eu tenho uma estrutura de diretório que se parece com isso:
(root) – Folder1 – Folder2 – file3
– file4
– file5
︙
– Folder11 – Folder12 – file13
– file14
– file15
︙
︙
Ou seja, Pasta1, Pasta11, Pasta21,… cada um contém apenas um único subdiretório. Esses subdiretórios (Pasta2, Pasta12, Pasta22, ...) não servem para nada. Gostaria de mover arquivo3, arquivo4, arquivo5,…, para a Pasta1 e, em seguida, excluir a Pasta2 vazia. E depois repita em toda a árvore; por exemplo,
(root) – Folder1 – file3
– file4
– file5
︙
– Folder11 – file13
– file14
– file15
︙
︙
Fazer isso manualmente é impraticável, porque eu tenho centenas ou milhares de pastas como essa. Eu já sei "Remover diretório vazio", o que é ótimo para excluir pastas vazias, mas não é o mesmo.
Como eu os mesclaria facilmente em um sistema Windows 7?
Respostas:
Você pode fazer isso com o CMD (removi o espaço em branco da "pasta 1" para simplificar o exemplo, removendo a necessidade de aspas.): -
Seria mais seguro criar uma nova pasta de destino e mover os arquivos para lá: depois de ter certeza de que todos os arquivos foram movidos (com dir / s ), exclua \ folder1 (com rd / s ) e renomeie (usando mover ) o nova pasta de volta para \ folder1 : -
Observe que haverá avisos se os nomes forem duplicados em subdiretórios diferentes (eu incluí / -y no comando move no caso de você colocar os comandos em um arquivo em lotes).
fonte
for /r %%f in (*) do move /-y %%f \newfolder1\
.