批处理文件将许多列出的文件移动到一个特定文件夹

时间:2014-08-15 10:45:48

标签: windows batch-file

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

问题是,我需要在Master文件夹及其子文件夹中搜索大约500个图像,然后将图像移动到指定的文件夹。

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

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"

我是批处理脚本和学习阶段的新手。请帮助我。非常感谢任何人提供正确的批处理脚本来执行此操作。

2 个答案:

答案 0 :(得分:7)

你能试试吗?

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

答案 1 :(得分:2)

@ 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

这些文章帮助了我:

相关问题