If I understand the OP correctly, then I think you should be able to do exactly what you want using xplorer² - I think the free/trial version might be OK for your purposes.
It is something that I need to periodically do to tidy up document repositories on main disk and backup stores.
All you do in xplorer² is select the topmost folder of the nested folder set, enter (go into) that folder, then do a search (Ctrl-F) on wildcard filename "*.*" (i.e., all files). One option is to choose to search "depth first" or "breadth first".
xplorer² then gives you a flat-file listing in a "scrap container" - e.g., as per the screenshot below, where I did the search on the Windows
directory (but stopped it after a few seconds as the search would have gone on for ages).
In the scrap container, there you can have any column you need. One is a column named Path
by default (or choice), which displays the full path of every file found in the nested folders.
The screenshot was taken after I had sorted the searched files on the Path
column, and shows the path to the subfolders where the files are located.
Once you have done that search, you can treat the files listed as files. Thus, you can open or (in this case) move/copy any of the files from the container by selecting them and moving them or copy/pasting them into whatever drive/folder you want. This removes them or copies them from their previous/original path.
xplorer² has robust copy and move functions, so I prefer to use that when moving data around like this.
Scrap containers can be treated like files themselves, and provide some incredible versatility for file management.
Hope this helps or is of use.