У меня в основном тонна документов, где имена файлов содержат высоту и ширину содержимого. Создатель файлов поместил высоту перед шириной, но я бы хотел, чтобы они поменялись местами . Проблема в том, что схема именования не всегда одинакова. Вот несколько примеров:
(2- или 3-значное число - высота, число + sp - ширина)
123_5sp_abc
99_5sp
abc 123_3sp
abc 123_7sp_def
abc 99_1sp
abc 99_2sp_def
abc_123_4sp
abc_123_6sp_def
abc_99_2sp
abc_99_3sp_def
abc def ghj 99_4sp
abc_def_ghj 99_5sp
То есть единственное, что всегда одинаково, это высота и ширина, соединенные _.
Я придумал разные решения для разных комбинаций. Примерно так:
Get-ChildItem -Path C:\Temp\test|
where -filterscript {$_.BaseName -match '(.*)_(\d{2,3})_(\d.*)_(.*)'}|
Rename-Item -NewName {$matches[1]+'_'+
$matches[3]+'_'+
$matches[2]+'_'+
$matches[4]+$_.Extension}
Ничто из того, что я пробовал, не справилось бы с каждым вариантом
Мой вопрос: есть ли простой способ включить все варианты?
Спасибо за ваши усилия!