标题已经解释了这一点,但我将在这里更具体一些。
我想用不同的 .jpg 文件替换多个不同文件夹中的 .jpg 文件,但我希望能够保留原始文件的名称,这样我就不必重命名每个图像以避免破坏文件路径,我该怎么做呢?
例如
- 将 .jpg 粘贴到 100 个文件夹
- .jpg 替换所有其他 .jpg 文件,无论文件名如何
- 粘贴的 .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 即可真正执行复制操作。