将名称中包含特定字符串的文件夹复制到一个目录,并将该字符串复制到另一个目

时间:2017-11-22 14:47:09

标签: string batch-file directory robocopy

我正在寻找一种方法,将批处理文件子文件夹从一个文件夹路径( C:\ Example )复制到另一个文件夹路径 D:\ Example_ABC 如果字符串" ABC"包含在子文件夹中。如果该字符串未包含在子文件夹中,则应将其复制到 D:\ Example_noABC

原始文件夹路径 C:\ Examples 包含

的子文件夹
- B123
- B099
- B939
...
- ABC_A990
- ABC_B099
- ABC_I000

有没有简单的方法呢? 我尝试使用robocopy来实现它,但这种接缝只能用于文件名而不能用于文件夹名称。

1 个答案:

答案 0 :(得分:2)

我设法在robocopy的帮助下意识到我想做什么,但它并不是很好。由于许多人在互联网上提出了类似的问题,没有人提供足够的解决方案,我想在此发布我的解决方案:

我首先查找包含ABC的所有文件夹,并仅复制到目标 D:\ Example_ABC 的文件夹,然后将除包含ABC的文件夹以外的所有文件夹(正常的robocopy)复制到 D :\ Example_noABC XD命令在这里处理(排除目录)

代码如下:

for /f "tokens=*" %%a in ('dir C:\Users\example\ABC*. /ad /b') do robocopy C:\Users\example\%%a D:\Example_ABC\%%a /e /v /np /w:1 /r:1 /xo

robocopy C:\Users\example\ D:\Example_noABC\ /e /np /w:0 /r:0 /xo /xd ABC*