2017-03-05 94 views
0

我有很多的图像文件的文件夹结构这样的:复制文件匹配在文本文件中的字符串(S)不与文件夹结构,许多子文件夹到另一个目标文件夹

/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, [...] 

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

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

特别关于这可能是路径中的空间和变音符号。

对不起,我的英语不好。我诚实地尽我所能。也许一些母语人士可以帮助编辑更容易理解。

+0

请注意,https://stackoverflow.com不是一个免费的脚本/代码写入服务。如果您告诉我们您迄今为止所尝试的内容(包括您已经使用的脚本/代码)以及您卡住的位置,那么我们可以尝试帮助解决特定问题。您还应该阅读[我如何提出一个好问题?](https://stackoverflow.com/help/how-to-ask)。 – DavidPostill

回答

0
@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

如果您愿意,您可以将>nul添加到xcopy行的末尾以取消报告。

请注意,/表示winbatch中的交换机 - \是目录分隔符。

此程序未经测试。我建议你在对付一个小的虚拟子目录树的情况下尝试对它进行验证,然后再依赖它来获取实时数据。

相关问题