如何在PowerShell中批量重命名文件?

时间:2016-12-14 19:13:41

标签: powershell

我有一个包含100多个文件的文件夹,所有这些文件都有一个共同的格式,即一个字符串,后跟4位数字指定年份,然后最后只有一个小写字母。例如,一个有效文件是Test2012b

现在,我想以这样的方式重命名它们,即去年和字母部分在括号内开始,然后开头的字符串结束。我上面的示例文件名Test2012b将重命名为[2012b] Test

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

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

2 个答案:

答案 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)}