批处理文件将文本文件中列出的文件从一个文件夹移动到另一个文件夹

时间:2017-06-24 08:34:38

标签: list batch-file move

我正在使用Windows 10,并希望创建一个批处理文件,以便将多个文件夹中的移动文件转移到另一个文件夹。我需要移动文本文件中列出的文件。 提出的一些问题是:文本文件在哪里必须或不重要?是否需要从某个文件夹运行批处理文件?我没有太多的经验,所以任何帮助都会受到赞赏。谢谢你!

这是我开始的

@echo off
set src_folder=C:\Users\Brian\Desktop\production\15XXXX
set dst_folder=C:\Users\Brian\Desktop\preliminary\eco\170555
set file_list=@C:\Users\Brian\Desktop\preliminary\eco\170555\170555.txt
for /f "tokens=*" %%i in (%file_list%) DO (
   echo f | move /E /C /R /Y "%src_folder%\%%i" "%dst_folder%\%%i")

文本文件现在有一行,数字是150252.我最终想要从C:\ Users \ Brian \ Desktop \ production \ 16XXXX,C:\ Users \ Brian \ Desktop \ production \移动更多文件17XXXX等 我正在从C:\ Users \ Brian \ Desktop运行我的批处理文件。我希望我已经添加了足够的细节,以便我能够理解这一点。再次感谢。

1 个答案:

答案 0 :(得分:0)

您可以循环遍历.txt文件,并为每一行循环遍历子文件夹,但我相信执行以下操作是一种更有效的方法:

for /r "C:\Parent" %%# in (*) do findstr "%%~nx#" "list.txt"&&move "%%#" "Folder"

此脚本以递归方式循环遍历父级,如果在" list.txt"中找到其中一个文件,则将其移至"文件夹"。

对于未指定路径的每个文件,脚本将查看其工作目录。 " LIST.TXT"必须是.bat所在的地方。

使用findstr还允许您将文件名放入.txt中的一行(例如file.txt bla.dat;example.mp4)。如果这些文件包含空格,请改用findfindstr /c