使用 rename-item 命令覆盖现有文件?

Using the rename-item command to overwrite an existing file?

我正在尝试使用 PowerShell 脚本整理从 iPhone 导入的文件,特别是想要编辑过的照片 (IMG_E001.jpg) 覆盖未编辑过的照片 (IMG_001.jpg ).

我正在使用 rename-item 但不知道如何让它覆盖文件。我目前的解决方法是将所有编辑过的文件移动到它们自己的文件夹中,运行 脚本,然后将它们复制到原始文件的顶部,但这有点麻烦,而且看起来并不像全自动脚本一样可靠。

这是我目前使用的代码:

get-childitem -recurse -Include *.JPG | foreach { rename-item $_ $_.Name.Replace("E", "") };

谁能帮我用这个脚本覆盖现有文件?谢谢

这是 rename-item 的限制,正如@postanote 在他的评论中提到的,这是因为 windows 不允许您将文件重命名为现有名称.您需要先删除其他文件或覆盖它。相反,您可以使用 move-item -force 来获得与执行覆盖基本相同的效果。

get-childitem -recurse -Include *.txt | foreach { Move-Item $_ $_.Name.Replace("E", "") -Force };

了解更多信息;这是一个相关的话题