Mover em lote subsubpastas e arquivos subindo um nível

Mover em lote subsubpastas e arquivos subindo um nível

Eu tenho um diretório parecido com este

Root Folder
  - Folder A
    - Subfolder
        - File1
        - File2
        - File3
  - Folder B
    - Subfolder
        - File1
        - File2
        - File3
  - Folder C
    - Subfolder
        - File1
        - File2
        - File3

Agora quero mover a subpasta e os arquivos um nível acima e excluir a pasta assim que ela for movida para cima, para que fique assim

Root Folder
    - Subfolder
        - File1
        - File2
        - File3
    - Subfolder
        - File1
        - File2
        - File3
    - Subfolder
        - File1
        - File2
        - File3

Existe um método em lote para fazer isso no Windows?

Responder1

Se houver um padrão para "Pasta [a|b]" que não duplique nos nomes das "subpastas", então sim, este é um script em lote bastante simples.

for /d %%d in ("folder*") do call :doit "%%d"
exit /b

:doit
@echo.Moving contents of "%~1" to "%cd%"...
pushd "%~1"
forfiles /c "cmd /c move @file .."
popd
@echo.Removing "%~1"
rd "%~1"
exit /b

Novamente, émuitoé importante entender que isso requer um padrão para os nomes das pastas ("pasta*"). Se isso for replicado em suas pastas de conteúdo, vocêvaiperder dados.

informação relacionada