【问题标题】:From list of directories, copy all subfolders to new location each with own folder per directory从目录列表中,将所有子文件夹复制到新位置,每个目录都有自己的文件夹
【发布时间】:2017-08-04 14:14:20
【问题描述】:

我已经四处搜索,似乎无法自己找到解决方案,所以我正在寻求帮助!

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

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

我们将非常感谢任何帮助,随着我被发送更多目录并且手动过程将无法很好地扩展,因此自动化变得越来越必要。

非常感谢任何帮助,为我指明方向或提供建议。

干杯

【问题讨论】:

标签: vba file powershell copy


【解决方案1】:

您可以使用 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

【讨论】:

    【解决方案2】:

    Copy-Item 将如前所述工作。 robocopy 也是为此目的而构建的,将在 cmd 或 Powershell 中运行。运行robocopy /? 获取使用信息。

    你可能想要这样的东西:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 2013-07-02
      • 1970-01-01
      • 2019-10-12
      相关资源
      最近更新 更多