我必须更改大约600个目录的名称以符合业务命名标准,事实证明它非常复杂。
我将以音乐目录格式介绍该问题,因为它更易于解释和联系。
如果我想重命名所有具有它的音乐目录,它将在结尾而不是开头显示介词
Original
The Beatles
Desired Output
Beatles ,The
我有以下目录作为示例
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 28/08/2016 3:51 PM Alabama Shakes
d---- 28/08/2016 3:51 PM Cat Stevens
d---- 28/08/2016 3:41 PM The Beatles
d---- 28/08/2016 3:42 PM The Brian Jonestown Massacre
d---- 28/08/2016 3:42 PM The Rolling Stones
d---- 28/08/2016 3:43 PM Them
d---- 28/08/2016 3:43 PM Them Rotten Vultures
d---- 28/08/2016 3:42 PM Van Morrison
我设法写了一些东西来将结果过滤到我想重命名的结果上
Get-ChildItem -Filter "THE *"
但是,我不知道该如何重命名所有逻辑。我确定它将是递归的,并且将使用
Rename-Item
函数。但是我尝试了以下
Get-ChildItem -Filter "The *" -Recurse |
Rename-Item -NewName { $_.name -replace 'The ','' } |
Rename-Item -NewName { $_.name + " ,The" }
并得到以下结果
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 28/08/2016 3:51 PM Alabama Shakes
d---- 28/08/2016 3:41 PM Beatles
d---- 28/08/2016 3:42 PM Brian Jonestown Massacre
d---- 28/08/2016 3:51 PM Cat Stevens
d---- 28/08/2016 3:42 PM Rolling Stones
d---- 28/08/2016 3:43 PM Them
d---- 28/08/2016 3:43 PM Them Rotten Vultures
d---- 28/08/2016 3:42 PM Van Morrison
任何帮助将不胜感激
相关问题子项也会检测到文件吗?由于仅目录需要重命名
最佳答案
设法使它与以下代码排序
它仅修改目录,而不修改目录中包含的文件。
Get-ChildItem -Filter "The *" -Directory|
?{ $_.PSIsContainer } |
Rename-Item -NewName { $_.name + " ,The" }
Get-ChildItem -Filter "The *" -Directory|
?{ $_.PSIsContainer } |
Rename-Item -NewName { $_.name -replace 'The ','' }
关于powershell - 将命题重命名为目录标题的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39188468/