将多个文件夹中的所有文件复制到一个文件夹中

将多个文件夹中的所有文件复制到一个文件夹中

我在 中的 3000 个文件夹中有大约 65000 个文件c:\foo\root(例如c:\foo\root\folder1c:\foo\root\folder2)。我想将所有这些文件复制到一个文件夹中c:\All\

我试过 Robocopy,但它只进行完整复制(包括目录)。如果在复制过程中遇到同名文件,我需要它将新文件重命名为temp(2).file或类似名称,而不是忽略它或覆盖它。

有人知道如何使用批处理文件/命令提示符执行此操作吗? 甚至一些 C# 也很好。

答案1

ATM 没有想清楚,所以这是一个绕圈子的方法……

如果您要存档树(使用非压缩方法会更快),您可以用两种方式处理它。存档树(包括子目录)并使用“E”(提取)而不是“X”(提取具有完整路径的文件)进行提取,提取的文件将放在一个目录中。执行相同操作的另一种方法是在创建存档时告诉它“从名称中排除路径”。然后,创建的存档将没有路径,即所有文件都存储在存档中的单个目录中,因此在提取时,它们也会以这种方式提取。(认为前一种方法更有意义。)

(ARJ 可以做到这一点。您认为 7z、RAR 和 ZIP 也可以吗?)

“扁平化”是我之前一直在想的一个词。有了这个词,备份/同步程序就可能被设置为“扁平化”目录结构。

那么其他的想法...Tar&DD?也许这会帮助其他人想出一个更好的答案,而我现在还没有想到。

(我已经很久没用过 Tar 了,所以我可能偏离了基础,但本质上有些东西......)

 tar -cvf c:/foo/roo | tar -xvf -

归档器和备份/同步器应该能够以自动方式处理任何重复。
空中客车可以。不知道 tar?

相关内容