我必须更改大约600个目录的名称以符合业务命名标准,事实证明它非常复杂。
我将以音乐目录格式介绍该问题,因为它更易于解释和联系。
如果我想重命名所有具有它的音乐目录,它将在结尾而不是开头显示介词
原版的
披头士
期望的输出
甲壳虫乐队
我有以下目录作为示例
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 ','' }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句