【问题标题】:Copying files from similar multiple folders into each of their child folders将文件从相似的多个文件夹复制到它们的每个子文件夹中
【发布时间】:2020-01-20 20:08:29
【问题描述】:

我想使用批处理文件将文件夹中的文件复制到 Windows 服务器上的备份文件夹 (OLD)。我想对多个文件夹执行此操作。

例如,我有多个文件夹,命名如下: C:\A01 C:\A02 C:\A03 ... C:\A50

我在这里给他们起个昵称叫A##。

每个文件夹都有数百个文件。

然后每年在更新它们之前,我将这些文件复制到一个名为 OLD 的备份文件夹中,用于每个 A##,这样我就有了去年文件的备份。然后我在另一个手动过程中分别将新文件复制到 C:\A##。

所以会有这样的文件夹: C:\A01\旧 C:\A02\旧 C:\A03\旧 ... C:\A50\旧

当我复制到 OLD 文件夹时,我会保留每个文件的最新版本。但是后来我手动复制的文件将覆盖在 C:\A## 文件夹中并成为今年的文件,而 C:\A##\OLD 将包含去年的文件。

如何编写脚本,以便将每个 C:\A## 文件夹的所有文件复制到各自的 \OLD 文件夹中?

我假设我会使用一个变量作为我想要复制的路径。

我可以使用 Robocopy 或 Xcopy。

【问题讨论】:

    标签: robocopy xcopy


    【解决方案1】:

    在脚本文件中

    @echo off
    cd c:\
    for /f "usebackq delims=:" %%a IN (`dir /AD /B ^| FINDSTR /I /R "A[0-9]*"`) DO (
     @mkdir "%%a\OLD" 
     xcopy "%%a\*.*" "%%a\OLD\" /ECIFHRY /D
    )
    

    它只将更新的文件 (/D) 复制到 OLD 子文件夹。

    如果您想维护文件的 ACL,请使用 /ECIFHRKOXY

    我建议您在测试文件夹中对其进行测试,您可以直接在 shell 中使用此命令生成该文件夹

    @mkdir c:\test76
    cd c:\test76
    For /L %a IN (1,1,10) DO @mkdir A%a && echo "the quick brown fox jumps over the lazy dog">A%a\file.txt
    

    【讨论】:

      猜你喜欢
      • 2018-08-06
      • 1970-01-01
      • 2015-05-23
      • 2016-05-08
      • 2022-08-04
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多