У меня есть папка с исходными изображениями (.jpg
), которую я хотел бы переименовать на основе данных в .csv
.
Переименование будет в двух частях имени файла, имен файлов выглядит как part1.part2.jpg
Вот как .csv
выглядит:
введите описание изображения здесь
У меня есть частично работающий скрипт, но он выдает ошибки, говоря, что не может найти исходные файлы и всегда не может правильно переименовать последний файл, указанный в .csv
.
#read the csv doc provided to get the old Part1s
$csvData = Import-Csv '.\*.csv'
#get the source images
$sourceImages = GCI '.\Source_Images' -Recurse
#rename source file
$csvData | % {
$oldPart1 = $_.OldPart1
$newPart1 = $_.NewPart1
$oldPart2 = $_.OldPart2
$newPart2 = $_.NewPart2
foreach($sourceImage in $sourceImages){
$sourceImage | Rename-Item -NewName { $_.Name -replace $oldPart1, $newPart1 -replace $oldPart2, $newPart2}
}
}
Я могу сказать, что я близок, но мне явно чего-то не хватает. Я думаю, что foreach
в %
вызывает некоторую проблему.