Existem inconsistências: na origem --c
está ausente no dest não há --ac
Árvore de origem:
> tree
└───mainFolder
├───a
│ ├───ab
│ ├───ac
│ └───ad
├───b
├───c
│ └───cd
└───d
A pasta principal fornecida está na raiz da unidade neste único cmdline:
@for /r "\mainfolder" %A in (.) do @for /f "tokens=5 delims=\" %B in ("%A") do @move "%A" "\mainFolder"
Produzirá esta árvore de destino:
> tree
└───mainFolder
├───a
├───ab
├───ac
├───ad
├───b
├───c
├───cd
└───d
Se não ajustar o valor dos tokens de 5 para corresponder ao nível de dir.
Em um arquivo em lote, duplique todos os sinais de porcentagem %%