![如何使用 Robocopy 将文件夹结构复制到一个目录下的所有(子)文件夹中?](https://linux22.com/image/1349222/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Robocopy%20%E5%B0%86%E6%96%87%E4%BB%B6%E5%A4%B9%E7%BB%93%E6%9E%84%E5%A4%8D%E5%88%B6%E5%88%B0%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%EF%BC%88%E5%AD%90%EF%BC%89%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%EF%BC%9F.png)
有没有什么方法可以让我快速获取我在桌面上创建的空文件夹结构并将其复制到位于网络驱动器上但位于同一文件夹中的其他 488 个文件夹中?
我的主要困难是我想将我创建的文件夹结构放置在网络文件夹的子文件夹中。有 488 个文件夹必须将我的结构复制到这些文件夹中。它们本身都包含其他文件夹和文件,我不希望它们对其产生任何影响。有没有办法将 robocopy 目标文件夹设置为比目标文件夹低 1 级或深 1 级?类似于 /LEV:n,但本质上是相反的?
我见过一些帖子提到递归,我认为它们是类似的情况,但如果可能的话,我不知道如何执行递归函数。
答案1
我不太确定我是否理解了你的问题的每个方面,但我们还是开始吧。
将此代码保存到 CMD 文件并自定义源、目标和 robocopy.exe 路径,其中目标表示包含 488 个子文件夹的根文件夹。
@echo off
SET "source=C:\Users\zsmall\Desktop\Attachment Structure"
SET "dest=C:\Users\zsmall\Desktop\CustomTest"
DIR /A:D /B %dest% > folders.txt
for /f "delims=" %%G in (folders.txt) do (
C:\Windows\System32\robocopy.exe "%source%" "%dest%\%%G" /copy:DAT /E /W:2 /R:2 /MT:8
)
pause
它能做什么
- 列出目标文件夹中的所有文件夹(无子文件夹),并将名称写入文本文件
- 循环遍历该列表文件中的每个文件夹
- 以当前文件夹作为目标执行 robocopy 命令
(源始终是同一文件夹) - robocopy 复制所有文件夹、子文件夹和文件,包括数据、属性和时间戳
有关所用参数的信息,请参见此处:
- 总监:http://ss64.com/nt/dir.html
- FOR/D 循环http://ss64.com/nt/for_d.html
- robocopy 开关http://ss64.com/nt/robocopy.html
如果不先将列表保存在文本文件中,请不要尝试执行此操作。否则,您可能会像我一样,创建数千个同名的子文件夹。