Search code examples
windowsbatch-filecopyxcopy

Windows batch copy files from subfolders to one folder


I had tried to make batch script that copies all *.tif files located in D:\images(random named subfolders here) to d:\all.

xcopy D:\Downloads\*.TIF D:\temp\ /s

works, but it copies with all folder tree. I tried to use other keys, but its dont works. Thanks for help!


Solution

  • FOR is your friend. Read HELP FOR on the /R option and the %~nx variable substitution; and then try this very simple code.

       pushd d:\downloads
       for /r %%a in (*.tif) do (
         echo COPY "%%a" "d:\temp\%%~nxa"
       )
       popd
    

    watch carefully the results and then remove the ECHO command.

    You will have to refine the code to cope with errors, duplicate names, edge cases, names with reserved characters, race conditions, cosmic events...