我需要交换某些文件的名称。这些文件位于相同的位置,因此我计划将它们移到暂存区,以避免两个名称相同的文件。我正在尝试根据名称参数识别文件,将其移至暂存区并重命名。
我想使用类似于以下内容的东西:
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
吗?
我很高兴知道是否有一种更好的方法可以在不移动的情况下交换两个文件的文件名,但是我想知道为什么上述方法不起作用。
谢谢!
答案 0 :(得分:5)
默认情况下,tsconfig.json
不会沿管道传递当前对象。
您可以使用Move-Item
开关来获得该功能:
-Passthru
或者,您可以通过将Move-Item -Force -Destination "C:\new\" -Passthru
目标作为文件来剪切Rename-Item
:
Move-item
答案 1 :(得分:0)
交换意味着两次重命名,只能使用一个临时位置或一个临时名称进行。
IMO一个临时名称更容易。
print(ggplot(dat, aes(x=NoFrec, y=Distance)) + geom_col() + ggtitle(as.character(i)))