2016-10-25 51 views
-3

我要重命名多个文件JPG文件夹中,但我想保持的唯一事情是五个号码,并添加一个前缀“NU” 例如:PowerShell的批量重命名文件只保留五个号码,并添加一个前缀

206_00013.jpg -> nu00013.jgp 
339-67003-primeur.jpg -> nu67003.jpg 
16126._1.jpg -> nu16126.jpg 

的问题是,原来的文件,他们没有“逻辑”

任何人都可以请点我在这里向正确的方向?我对Powershell一点都不熟悉。 感谢

+0

你说的文件*没有“逻辑” *。我假设你的意思是,文件名中不一定有简单的模式。他们都至少有5号码组,只有一个这样的组? – eddiem

+1

'Get-ChildItem | Rename-Item -NewName {($ _。BaseName -replace'。*(\ d {5})。*','$ 1')+ $ _。Extension} –

回答

2

你可以检查基本名称中包含的5个数字的字符串,如果是重命名:

Get-ChildItem *.jpg |ForEach-Object{ 
    if($_.BaseName -match '\d{5}'){ 
     Rename-Item $_.FullName -NewName "nu$($Matches[0]).jpg" 
    } else { 
     Write-Warning "5 digits not found in filename $($_.Name)" 
    } 
} 
相关问题