O script a seguir usa um RegEx para criar grupos ()
dos elementos divididos pelo -
e reorganiza-os para criar o novo nome
# Change path to fit your environment
Pushd "A:\"
Get-ChildItem 'daugther of moon - * - *.jpg' |
Where BaseName -match '(daugther of moon) - (.*) - (.*)'|
Rename-Item -NewName {$matches[1]+' - '+'
$matches[3]+' - '+'
$matches[2]+$_.Extension} -Confirm
PopD
Como Renomear-Item aceita entrada canalizada, o bloco de script {}
monta os elementos na nova ordem.
Exemplo de saída no meu A:\
ramdrive
Confirm
Are you sure you want to perform this action?
Performing the operation "Rename File" on target
"Item: A:\daugther of moon - one - two.jpg
Destination: A:\daugther of moon - two - one.jpg".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):