Supondo que os nomes são todos únicos, você deve poder usar este comando (grupo de comando realmente):
for /f "tokens=*" %a in ('dir /b /s /a-d') do @copy "%a" "c:\Single-Folder"
Para esclarecer - abra um prompt de comando e, na pasta raiz da pasta com as subpastas que deseja copiar, execute esse comando. Então, por exemplo, se você quiser copiar tudo em "C: \ Sample Folder Tree" e todos os seus sub-diretórios, você pode mudar para "C: \ Sample Folder Tree" no prompt de comando e depois rodar esse comando.
Ou, você poderia simplesmente especificá-lo na seção dir como esta:
for /f "tokens=*" %a in ('dir /b /s /a-d "c:\Sample Folder Tree"') do @copy "%a" "c:\Single-Folder"
Se você quiser ver o que isso vai fazer sem realmente fazer nada, adicione um "@echo" entre o fazer e copiar - assim:
for /f "tokens=*" %a in ('dir /b /s /a-d "c:\Sample Folder Tree"') do @echo copy "%a" "c:\Single-Folder"