【问题标题】:Copy files matching string(s) in a text file out of many subfolders with folder structure to another destination folder将文本文件中匹配字符串的文件从具有文件夹结构的许多子文件夹中复制到另一个目标文件夹
【发布时间】:2017-03-05 20:11:35
【问题描述】:

我在一个文件夹结构中有很多 图像文件,如下所示:

/Foldername1 (hohe Auflösung)/PictureRANDOMNAME1-FB.jpg
/Foldername1 (hohe Auflösung)/PictureRANDOMNAME2-FB.jpg
[...]
/Foldername2 (hohe Auflösung)/PictureRANDOMNAME1-SW.jpg
/Foldername2 (hohe Auflösung)/PictureRANDOMNAME2-SW.jpg
[...]
/Foldername3 (hohe Auflösung)/PictureRANDOMNAME1-SP.jpg
/Foldername3 (hohe Auflösung)/PictureRANDOMNAME2-SP.jpg
[...]

现在我有一个 filelist.txt,其中包含其中一些图像文件的列表,如下所示:

PictureRANDOMNAME1, PictureRANDOMNAME3, [...]

我想将与文本文件列表中的字符串匹配的所有图像从所有子文件夹中复制到新的目的地(不移动它们),同时保持文件夹结构。

也许我需要一个批处理文件,我只需将其与所有子文件夹以及 filelist.txt 一起复制到主文件夹中,执行它并获得相同的文件夹结构,但仅包含另一个目标上的所需文件。

这方面的特别之处可能是路径中的空格和变音符号。

对不起,我的英语不好。老实说,我尽力了。也许一些母语人士可以帮助编辑更容易理解。

【问题讨论】:

  • 请注意stackoverflow.com 不是免费的脚本/代码编写服务。如果您告诉我们到目前为止您已经尝试过什么(包括您已经在使用的脚本/代码)以及您遇到的问题,那么我们可以尝试帮助解决具体问题。您还应该阅读How do I ask a good question?

标签: windows batch-file xcopy


【解决方案1】:
@echo off
setlocal
:: This copies the tree structure from sourcedir to destdir
xcopy /t /e sourcedir destdir
:: This reads the filenames and copies the required files
for /f "delims=" %%a in (filelist.txt) do (
 for %%b in (%%a) do xcopy /s /e sourcedir\%%b* destdir
)

%%a 从文件中获取行。由于每一行都是逗号分隔的,%%b 将对行中的每个名称执行xcopy

如果您愿意,可以在 xcopy 行的末尾添加 >nul 以禁止报告。

请注意,/ 表示 winbatch 中的一个开关 - \ 是目录分隔符。

此程序未经测试。我建议您在依赖它来获取实时数据之前,先对一个小的虚拟子目录树进行验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多