У меня есть папка с различным количеством файлов одинаковой формы, которые я загружаю партиями с общего сайта.
Загруженные файлы имеют автоматическое именование с похожим шаблоном, однако это не конечный шаблон, который мне требуется для моего сервера. Приведенный ниже код выполняет свою работу, но он кажется неуклюжим, и моя интуиция говорит, что есть лучший способ написать несколько замен для имени файла. Пожалуйста, помогите мне перекодировать это.
Я перепробовал несколько конвейеров, и, похоже, проблема заключается в том, что после переименования файлов с первой итерации все мои ссылки после этого не сохраняются. Следовательно, после замены мне нужно создать новую переменную для этой новой итерации.
$pathToRFIs = 'C:\Users\user\Downloads\*.pdf'
$path2ToRFIs = 'C:\Users\user\Downloads'
$text = [System.Threading.Thread]::CurrentThread.CurrentCulture.TextInfo
$lowerRFIs = gci -path $pathToRFIs -filter *rfi*
$lowerRFIs | ren -newname {"$($text.ToTitleCase($_.BaseName))$($_.Extension)"}
$properRFIs = gci -path $pathToRFIs -filter *rfi*
$properRFIs | ren -newname {$_.name -replace '___',' & '}
$andRFIs = gci -path $pathToRFIs -filter *rfi*
$andRFIs | ren -newname {$_.name -replace '_',' '}
$spaceRFIs = gci -path $pathToRFIs -filter *rfi*
$spaceRFIs | ren -newname {$_.name -replace 'Encinitas Beach Resort-Rfi ','RFI 00'}
$RFIs = gci -path $pathToRFIs -filter *RFI*
$RFIs | ren -newname {$_.name -replace '^(.*?)-', '$1_'}
$RFIs_ = gci -path $pathToRFIs -filter *RFI*
$RFIs_ | ren -newname {$_.name.substring(0,$_.name.length-17)}
$finalRFIs = gci -path $path2ToRFIs *"RFI 0"*
$finalRFIs | ren -newname {$_.fullname + ".pdf"}
Для справки файл, который я получаю, будет выглядеть так:
"encinitas beach resort-rfi 31-public water closets-201903221442.pdf"
Желаемое имя конечного результата будет:
"RFI 0031_Public Water Closets.pdf"