【问题标题】:Batch file to Move files listed in a text file from one folder to another批处理文件将文本文件中列出的文件从一个文件夹移动到另一个文件夹
【发布时间】:2017-06-24 08:34:37
【问题描述】:

我使用的是 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 运行我的批处理文件。我希望我已经添加了足够的细节,以便我可以弄清楚这一点。再次感谢。

【问题讨论】:

  • 对文本文件的内容和布局的某种想法将不胜感激。您可以使用 edit 工具将其添加到您的原始帖子中。
  • 我添加了一些附加信息。谢谢!
  • 文本文件是否只包含这些数字?它们代表什么?文件夹中的文件还是整个文件夹?是否要移动 150252 中的所有文件?当你说“16XXXX”时,它是代表通配符(每个以“16”开头的文件夹)还是特定文件夹?
  • 文本文件现在只包含一个数字,它代表一个pdf文件,位于一个名为15XXXX的文件夹中。在我移动一个文件后,我将在文本文件中添加额外的数字。例如,我可以将数字 166700 添加到文本文件中,并且需要批处理将该 pdf 移动到名为 16XXXX 的文件夹中。感谢您的提问。

标签: list batch-file move


【解决方案1】:

您可以遍历 .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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-28
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多