batch file将许多列出的文件移动到一个特定的文件夹

我有一个有多个子文件夹的主文件夹。 所有的子文件夹都有不同的扩展名(jpg,tif和png)。 所有子文件夹中的图像总数约为90000个图像。

事情是,我需要search主文件夹及其子文件夹中的一些500图像,并将图像移动到指定的文件夹。

我尝试了一个下面的批处理脚本来使用文本文件来search一个主文件夹和所有子文件夹,并从列表中移动所有文件,并将其粘贴到指定的单个文件夹中。 包含没有扩展名的文件名的文本文件。 但是我的批处理脚本不工作。 它没有给我任何错误..但是当我运行它时没有任何反应。

set FIILELIST=C:\padhu\files.txt set FILESPATH=C:\Padhu\MasterFolder set DESTPATH=C:\DestinationFolder for /f %%X in (%FIILELIST%) do call :MOVE_FILES "%%X" goto :eof :MOVE_FILES for /r %FILESPATH% %%I in (%~1) do echo move /qvs "%%I" "%DESTPATH%%%~pnxI" 

我对批处理脚本和学习阶段非常陌生。 请帮助我。 林非常感谢,如果有人提供正确的批处理脚本来做到这一点。

你能试试吗?

 set FIILELIST=C:\padhu\files.txt set FILESPATH=C:\Padhu\MasterFolder set DESTPATH=C:\DestinationFolder for /f "delims=" %%x in (%FIILELIST%) do (forfiles /p %FILESPATH% /s /m %%x.* /c "cmd /c move /y @path %DESTPATH%\@file" 2>>failed_temp.txt) for /f "tokens=5 " %i in (failed_temp.txt) do (echo.%~i)>>failed_list.txt del failed_temp.txt 

干杯,G

@ gbabu的回答对我来说非常有帮助。

我需要编辑它来处理绝对(完整)而不是相对的文件名。 我需要处理,他们包含空间。

不幸的是,我不知道如何记录错误,像@ gbabu做的。

 @echo off REM See https://stackoverflow.com/a/25325529/470749 REM See https://stackoverflow.com/a/163873/470749 REM See https://stackoverflow.com/a/155950/470749 set FILELIST="K:\F\Users\my_user\Documents\My Music\JUKEBOX\5.m3u_list.txt" set DESTPATH=C:\temp\cdrw for /f "usebackq tokens=*" %%x in (%FILELIST%) do (copy "%%x" %DESTPATH%) pause 

这些文章帮助了我: