我有一个包含100多个文件的文件夹,所有这些文件都有一个共同的格式,即一个字符串,后跟4位数字指定年份,然后最后只有一个小写字母。例如,一个有效文件是Test2012b
现在,我想以这样的方式重命名它们,即去年和字母部分在括号内开始,然后开头的字符串结束。我上面的示例文件名Test2012b将重命名为[2012b] Test
我虽然只是使用PowerShell的Rename-Item如下所示,但我真的不知道如何进行上述文件名转换。有什么想法吗?
Get-ChildItem *.pdf| Rename-Item -NewName { $_.Name -replace ???? }
答案 0 :(得分:4)
Get-ChildItem *.pdf | Rename-Item -NewName { $_.Name -replace "(\w+?)(\d+)(\w)", '[$2$3]$1' }
答案 1 :(得分:0)
我更喜欢@ t1meless解决方案,但它是另一种解决方案
gci *.pdf| rni -NewName {"[{0}]{1}.pdf" -f $_.BaseName.Substring($_.BaseName.Length -5, 5), $_.BaseName.Substring(0, $_.BaseName.Length -5)}