batch-filescripting-language

Copy a list (txt) of files


I've seen some scripts examples over SO, but none of them seems to provide examples of how to read filenames from a .txt list.

This example is good, so as to copy all files from A to B folder

xcopy c:\olddir\*.java c:\newdir /D /E /Q /Y

But I need something like the next, where I can fill actually the source and destination folder:

 @echo off
 set src_folder = c:\whatever\*.*
 set dst_folder = c:\foo
 xcopy /S/E/U %src_folder% %dst_folder%

And instead of src_folder = c:\whatever\*.*, those *.* need to be list of files read from a txt file.

File-list.txt (example)

file1.pds
filex.pbd
blah1.xls

Could someone suggest me how to do it?


Solution

  • Given your list of file names in a file called File-list.txt, the following lines should do what you want:

    @echo off
    set src_folder=c:\whatever
    set dst_folder=c:\target
    for /f "tokens=*" %%i in (File-list.txt) DO (
        xcopy /S/E "%src_folder%\%%i" "%dst_folder%"
    )