Есть несколько способов выполнить вашу задачу,
вот тот, который опирается на данную структуру
dd.mm.yyyyy_string.txt
и использует метод .split()
для разрезания BaseName на части,
изменяет их порядок и объединяет их с оператором строкового формата.
Get-ChilItem ??.??.????_*.txt -File |
Rename-Item -NewName {("{0}.{1}.{2}_{3}" -f $_.BaseName.split('._',4)[2,1,0,3])+$_.extension} -WhatIf
Это работает даже с указанной строкой, а не только с цифрами в дате.
Переформатированный пример вывода (немецкий язык):
WhatIf: Ausführen des Vorgangs "Datei umbenennen" für das
Ziel "Element: A:\dd.mm.yyyy_string.txt
Ziel: A:\yyyy.mm.dd_string.txt".
Если вывод выглядит нормально, удалите трейлинг -WhatIf
Чтобы лучше ограничить фактические даты, введите Where-Object
Get-ChilItem ??.??.????_*.txt -File |
Where-Object BaseName -match '^[0-3][0-9]\.[01][0-9]\.\d{4}_' |
Rename-Item -NewName {("{0}.{1}.{2}_{3}" -f $_.BaseName.split('._',4)[2,1,0,3])+$_.extension} -WhatIf