从目录列表中,将所有子文件夹复制到新位置,每个目录都有自己的文件夹

时间:2017-08-04 14:14:21

标签: vba file powershell copy

我四处寻找,似乎无法找到解决方案,所以我正在寻求帮助!

我有~100个文件位置/目录的列表。它们位于网络上,我需要抓住它们并将它们存储在本地。我有一些VBA的经验,所以我打算尝试使用它(也许把目录放在一个电子表格中并运行一个宏...)

当我在本地存储它们时,我需要保留它们来自的目录的名称。

任何帮助都会受到很多人的赞赏,自动化这一过程变得越来越必要,因为我正在发送更多目录,并且手动过程在向前推进时无法很好地扩展。

任何帮助,指向我的方向或提供建议都非常感激。

干杯

2 个答案:

答案 0 :(得分:2)

您可以使用PowerShell中的Copy-Item cmdlet与-recurse-container开关结合使用来复制和保留文件夹结构!备份完整的网络文件夹和所有子文件夹真是太棒了!

这是我的源目录。

C:\temp\stack>tree /F
Folder PATH listing
Volume serial number is 0000000B 9215:D0CB
C:.
├───Dest
└───Source
    ├───1
    │       Archive.rar
    │       File01.bmp
    │
    ├───2
    │       Archive.rar
    │       File01.bmp
    │
    ├───3
    │       Archive.rar
    │       File01.bmp
    │
    └───4
            3.txt
            Archive.rar
            File01.bmp
            Ham.txt

如您所见,我在Source中有一些文件和文件夹,每个文件和文件夹都包含子文件夹和子文件。通过这个简单的PowerShell命令,我可以轻松地将整个结构移动到Dest

copy-item -Path c:\temp\stack\source -Destination C:\temp\stack\Dest -Container -Recurse 

现在我将整个结构保存在Dest文件夹中。

C:\temp\stack>tree /F
Folder PATH listing
Volume serial number is 000000DE 9215:D0CB
C:.
├───Dest
│   ├───1
│   │       Archive.rar
│   │       File01.bmp
│   │
│   ├───2
│   │       Archive.rar
│   │       File01.bmp
│   │
│   ├───3
│   │       Archive.rar
│   │       File01.bmp
│   │
│   └───4
│           3.txt
│           Archive.rar
│           File01.bmp
│           Ham.txt

答案 1 :(得分:0)

Copy-Item将按照提及的方式工作。 robocopy也是为了这个目的而构建的,并且将在cmd或Powershell中运行。运行robocopy /?了解使用信息。

您可能需要以下内容:

robocopy "Y:\Network\Source\Location" "C:\Local\Machine\Destination\Location" /E

/ E表示复制目录和所有子目录。