2016-12-14 88 views
0

我有一个包含100个以上文件的文件夹,它们都有一个通用格式,即一个字符串,其后是4位数字,指定年份,然后是最后一个小写字母。例如,一个有效的文件是Test2012b如何在PowerShell中批量重命名文件?

现在,我想重新命名它们,使得去年和字母部分在括号内开始,然后在开始处的字符串结束。我上面的示例文件名Test2012b将被重命名为[2012b]测试

我虽然刚刚使用PowerShell的Rename-Item如下,但我真的不知道如何进行上述文件名转换。有任何想法吗?

Get-ChildItem *.pdf| Rename-Item -NewName { $_.Name -replace ???? } 
+0

什么?有这样的问题很多。您已经知道如何重命名文件,但需要处理字符串。你已经知道你想要最后的X个角色,所以寻找这样的东西会让你的答案。 – Matt

回答

4
Get-ChildItem *.pdf | Rename-Item -NewName { $_.Name -replace "(\w+?)(\d+)(\w)", '[$2$3]$1' } 
+0

完美工作,谢谢! – typos

0

我喜欢@ t1meless解决方案,但它是一个其他的解决方案,你已经尝试或考虑

gci *.pdf| rni -NewName {"[{0}]{1}.pdf" -f $_.BaseName.Substring($_.BaseName.Length -5, 5), $_.BaseName.Substring(0, $_.BaseName.Length -5)}