重命名与模式匹配的文件名部分

时间:2016-08-23 13:57:03

标签: powershell powershell-v2.0

说我有一个像这样的文件名列表:

some-file.ts  
my-project-service.ts  
other.ts  
something-my-project.ts 

我需要更改其中包含my-project的文件名,才能将该部分重命名为$appname$

因此my-project-service.ts将成为$appname$-service.ts

我需要从根目录递归执行此操作。

我似乎对PowerShell毫无希望,所以我想我会问这里是否有人可以帮助我。

1 个答案:

答案 0 :(得分:3)

Get-ChildItem cmdlet与-recurse开关一起使用,从根目录中递归获取所有项目。使用my-project cmdlet过滤包含Where-Object的所有项目,最后使用Rename-Item cmdlet重命名它们:

Get-ChildItem "D:\tmp" -Recurse | 
    Where {$_.Name -Match 'my-project'} | 
    Rename-Item -NewName {$_.name -replace 'my-project','$appname$' }