У меня есть экспортированный файл CSV с таблицей ниже
"Directory","BaseName"
"E:\Movie Files\Movie (2000)","Movie"
"E:\Movie Files\Movie (2001)","Movie 2"
Мой код очень близок к тому, что я хочу, и это, в основном, переименование cover.jpg
в каждой папке в базовое имя фильма и добавление -poster.jpg
после него, например, Movie-poster.jpg
, Movie 2-poster.jpg
.
Это работает для первой папки, но каждая папка после этого использует одно и то же базовое имя из первой папки. Он не работает для каждой папки в корневом каталоге, как я думал. Так что для фильма (2001) у меня в конечном итоге Movie-poster.jpg
, а не Movie 2-poster.jpg
.
Это код, который не совсем там:
$lines = Import-Csv 'E:\Output.csv'
foreach ($line in $lines) {
Get-ChildItem -Path .\* -File -Filter '*Cover*' -Recurse |
Rename-Item -NewName ($line.BaseName + '-poster.jpg')
}
Ожидаемые результаты, как упомянуто выше, состоят в том, что каждый cover.jpg
в каждой папке и подпапках будет переименован в соответствии с базовым именем в соответствии с их местоположением.