将文件粘贴到多个文件夹中并让文件类型覆盖相同类型的文件,同时保留原始文件的名称的命令或脚本?

将文件粘贴到多个文件夹中并让文件类型覆盖相同类型的文件,同时保留原始文件的名称的命令或脚本?

标题已经解释了这一点,但我将在这里更具体一些。

我想用不同的 .jpg 文件替换多个不同文件夹中的 .jpg 文件,但我希望能够保留原始文件的名称,这样我就不必重命名每个图像以避免破坏文件路径,我该怎么做呢?

例如

  1. 将 .jpg 粘贴到 100 个文件夹
  2. .jpg 替换所有其他 .jpg 文件,无论文件名如何
  3. 粘贴的 .jpg 文件会重命名为原始覆盖文件的名称

编辑:忘了提及,这些文件夹都是单个父母的子文件夹,而不是分散在整个驱动器上。

答案1

C:\newpic.jpgC:\newpic.jpgPowerShell 最适合于以下情况:

ls "C:\files" -Recurse -Filter "*.jpg" | ForEach{ cp "C:\newpic.jpg" $_.FullName -WhatIf }

更详细的版本是:

Get-ChildItem "C:\files" -Recurse -Filter "*.jpg" | ForEach-Object { Copy-Item "C:\newpic.jpg" -Destination $_.FullName -WhatIf }

第一部分循环遍历 C:\files 下的所有 jpg 文件(包括所有子目录)。第二部分获取每个文件,并用新文件覆盖它。

上述命令实际上只会告诉您它们会做什么,而无需执行此操作,删除 -WhatIf 即可真正执行复制操作。

相关内容