将某些文件复制到另一个文件夹

问题描述 投票:0回答:1

我需要将文件从一个文件夹/子文件夹复制到一个新文件夹。下面是我需要做的事情的图片。

我需要将 D:\ 驱动器上存在的所有文件以及 d:\ 驱动器内的子文件夹且文件名以前五个数字字符开头的文件复制到另一个名为 Test2 的文件夹。因此,在上图中,我需要将您在图像中看到的所有文件以及“Test”文件夹中存在且文件名以前五个数字字符开头的所有文件复制到“test2”文件夹中。下面是 Test 文件夹的图片:

上图只是一个例子。我在 D:\ 驱动器上有数百个文件和数百个子文件夹,其中的文件名以数字字符开头。我只寻找前 5 个字符。如果前五个字符是数字,则可以安全地将文件传输到“Test2”文件夹。所有文件都不是必需的 .pdf 文件,有些是“jpg”,“tif”,有些是“txt”。以下是我尝试做的:

FOR %F IN (D:\SourceFolder\12345*.*) DO COPY "%F" D:\Test1\

上面一行仅复制一个子文件夹中的所有文件。我想将所有子文件夹中的所有文件复制到新文件夹中。这些子文件夹具有不同的名称。复制时,如果名称相同,例如,如果 D:\ 文件夹中的文件名称为“12345.jog”,并且 Test2 文件夹中已有一个文件名称为“12345.jpg”,那么我想覆盖该文件.

任何帮助将不胜感激。

powershell batch-file cmd batch-processing
1个回答
0
投票

A PowerShell 解决方案,使用

Get-ChildItem
Copy-Item
:

Get-ChildItem -Recurse -File -LiteralPath D:\SourceFolder -Filter 12345*.* |
  Copy-Item -Destination D:\Test1\ -WhatIf

注意:上面命令中的

-WhatIf
常用参数预览操作。删除
-WhatIf
并在确定操作将执行您想要的操作后重新执行。

根据要求:如果发生名称冲突,则“获胜”的是在遍历输入目录树期间遇到的具有给定名称的last文件。

© www.soinside.com 2019 - 2024. All rights reserved.