递归移动多个目录中的文件但忽略一个目录?

时间:2013-07-25 18:50:52

标签: batch-file recursion directory move

使用这种情况,我如何移动所有子文件夹中的所有文件除了一个文件夹(存档)?

在c:\文件夹中,我有一个名为“Archive”的文件夹,一堆随机命名的文件夹将从ftp服务器中输入txt文件。我需要递归地从这些随机生成的文件夹中提取所有内容,同时保留Archive文件夹。批处理的当前代码行:

for /r %l in (*) do (IF NOT "%l"=="*Archive*" move /y %l c:\folder)

结果

c:\folder>(IF NOT "c:\folder\Archive\arctest.txt" == "*Archive*" move /y c:\folder\Archive\arctest.txt c:\folder )
1 file moved

我想要在所有其他子文件夹中的子文件移动时保留此文件。

1 个答案:

答案 0 :(得分:3)

试试这个:

for /r %a in (*) do @echo %~dpa|findstr /rvi "^.:\\[^\\]*\\archive\\$" >nul&& echo move /y "%~a" c:\folder