【问题标题】:Recursively moving files from multiple directories but ignoring one directory?从多个目录递归移动文件但忽略一个目录?
【发布时间】:2013-07-25 18:50:52
【问题描述】:

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

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

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

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

【问题讨论】:

  • 在 linux 中,你会做这样的事情:find . -path ARCHIVE -prune -i{} -exec mv -f {} c:/folder

标签: batch-file recursion directory move


【解决方案1】:

试试这个:

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

【讨论】:

  • 您好 Endoro:这种简化也有效:findstr /rvi "\\archive\\$" >nul&&
猜你喜欢
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-03
  • 2017-07-20
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
相关资源
最近更新 更多