在阅读 FORFILE 命令的解释时,我很难理解递归的概念。
对于参数 /s,参考中说:
/s:指示 forfiles 命令递归搜索子目录。
如果我有数百个子文件夹和子子文件夹,那么递归现在意味着什么? 该命令是从根目录开始,然后向下一级,再向下一级等等,还是从底部开始向上一级等等?
forfiles 的参考资料可以在这里找到: http://technet.microsoft.com/de-de/library/cc753551%28v=ws.10%29.aspx
问候!
答案1
递归的工作方式是确保根文件夹下的所有内容也都得到处理。例如 - 如果您有一个 C:\myfolder 文件夹,里面有十几个子文件夹,其中一些有自己的子文件夹,甚至有些也有自己的子文件夹 - 每个子文件夹里都有文件... 那么管理它们并对它们全部应用更改非常耗时,而且如果没有递归,很容易搞砸。
递归沿着文件夹树向下走,先按照 1 条路径一直到最底部,然后再向上一级,再向下走,直到必须回到顶部并进入下一个分支。例如:
它会先向下移动到 C:\folder\subfolder1\subsubfolder1\ 然后执行 subsubfolder2.. 当完成该分支后,它会返回到 C:\folder\subfolder2\ 并继续执行该分支... 最终它会在 C:\folder* 完成并继续执行 C:\folder2..
哇,这很难解释。本质上,它按字母顺序尽可能地沿着第一个链向下走,然后跳上 1 级并重复。最终它必须跳上 2 级,然后再跳一次……一遍又一遍,直到它必须跳回顶部