我的任务是如何一次更改多个文件夹中每个文件的名称,并仍然使用该文件夹独有的增量。
更具体地说,我想重命名文件夹中的.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编写"等等的提示。)
/埃里克
答案 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++)}
}