PowerShell - 使用增量重命名多个文件夹中的多个文件

时间:2017-11-13 18:12:47

标签: powershell rename increment auto-increment directory

我的任务是如何一次更改多个文件夹中每个文件的名称,并仍然使用该文件夹独有的增量。

更具体地说,我想重命名文件夹中的.jpg文件,例如命名为1.1,1.2,1.3,...,99.1,...与文件夹+和其他扩展名相同的名称' .X '其中X = 1,2,...,99。

E.g。如果文件夹1.1包含3个文件我想命名它们:1.1.1.jpg,1.1.2.jpg和1.1.3.jpg。

我是PowerShell的新手,但我认为我设法通过以下代码解决了这个问题:

$i = 1
Get-ChildItem "C:\Users\Rename" -Recurse | Where {$_.extension -eq ".jpg"} | %{Rename-Item $_.FullName -Newname ($_.Directory.Name+'.{0}.jpg' -f $i++)}

然而,当文件夹改变时,增量当然不明白......

我想知道是否有人可能对这个问题有一个优雅的解决方案,或者我是否必须学习如何在PowerShell中使用if / for语句?

我很感激任何答案! (也会非常感谢使用PowerShell编写"等等的提示。)

/埃里克

1 个答案:

答案 0 :(得分:0)

首先获取您的文件夹列表,然后循环浏览它们,每次将$ i重置为1:

$folders = Get-ChildItem "C:\Users\Rename" -Recurse | where {$_.PSIsContainer -eq $true} | select FullName

foreach ($folder in $folders) {

Set-Location $folder.FullName

$i = 1

Get-ChildItem -Filter "*.jpg" | % {Rename-Item $_.FullName -Newname ($_.Directory.Name+'.{0}.jpg' -f $i++)}
}