So I have a list of files in a folder in jpg format like so:
"1.George ABCD.jpg"
"2.George ABCD.jpg"
"3.Mead ABCD.jpg"
So what I want to do is rename them so that the the prefix becomes a suffix like so:
"George ABCD 1.jpg"
"George ABCD 2.jpg"
"Mead ABCD 2.jpg"
and I want to have it work recursively through sub folders.
I have a code segment that I've tried that works here:
ls -Recurse |? BaseName -match '^(\d+\.)([^0-9].*)$' |ren -new {"{0}{1}{2}" -f $matches[2],' ', $matches[1].substring(0,1)+ $_.extension}
cmd /c pause
Now the problem is my piece of code currently doesn't work for double digit names for example:
"11.George ABCD.jpg"
Instead what it does is it spits out
"George ABCD 1.jpg"
which is not what I want, I know it's something to do with the regular expression d+ which is one or more digits, but I'm not sure what I should use instead to make it work properly for one or more digit numbers.
That is I want the output for "11.George ABCD.jpg" to be "George ABCD 11.jpg".
Is there any way I can fix this?
.BaseName
on the dot, trim the items, join them in the desired order with any desired delimiter, and finally make a file name from them to use in a call toRename-Item
. [grin] – Lee_Dailey