Я думаю, вам нужны два отдельных Get-ChildItem
командлета для этого. Первый соберет все подкаталоги, а при зацикливании, второй, соберет файлы в каждом каталоге:
Get-ChildItem -Path 'X:\RootFolder\where\the\files\are' -Recurse -Directory | ForEach-Object {
$count = 1 # reset the counter for this subdir to 1
Get-ChildItem -Path $_.FullName -Filter '*.jpg' -File | ForEach-Object {
$_ | Rename-Item -NewName ('{0:D1}.jpg' -f $count++) -WhatIf
}
}
Удалите -WhatIf
, если вы удовлетворены результатами, показанными в консоли.
PS в заголовке написано *.png
, но ваш код имеет дело с *.jpg
. Не имеет значения, если вы установите фильтр на правильное расширение и соответственно измените новое имя в коде