Powershell移动和重命名文件

加勒特

我需要交换某些文件的名称。这些文件位于相同的位置,因此我计划将它们移到暂存区,以避免两个名称相同的文件。我试图根据名称参数识别文件,将其移至暂存区并重命名。

我想使用类似以下内容的东西:

Get-ChildItem ".\" -Recurse | Where-Object { $_.Name -like "*XYZ*"} | Move-Item -Force -Destination "C:\new\" | Rename-Item -NewName { $_.Name -replace 'XYZ','ABC' }

文件会移动,但不会重命名。我无法通过管道move-item传送到rename-item吗?

我很高兴知道是否有一种更好的方法可以在不移动的情况下交换两个文件的文件名,但也想知道为什么上述方法不起作用。

谢谢!

苏尔曼

默认情况下Move-Item不会沿管道传递当前对象。

您可以使用-Passthru开关来获得该功能:

Move-Item -Force -Destination "C:\new\" -Passthru

或者,您可以Rename-Item通过将Move-item目标文件作为文件来删除

Get-ChildItem ".\" -Recurse |
    Where-Object { $_.Name -like "*XYZ*"} |
    Move-Item -Force -Destination "C:\new\$($_.Name -replace 'XYZ','ABC')"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章