NicolTIP#010: How to rename and manage file names of your video (and audio?) library with powershell on Windows 7:-)

This week end I encoded some my old DVD in wmv file because I’m destroying my old DVD player and I don’t want to buy a blue ray disk (I’m sorry Sony:-).

After the encoding arrived the boring time to organize file names, and because now PowerShell is available to everyone OOB with Windows 7, this sounds like a good opportunity for me to test my skills in that area.

(these tricks can be usable and useful even if you download series from torrent & co. but because it seems something not so legal, please do not ping me about this topic:-)

 

Well, lets’ start with a list of files:

 

 PS C:\TEMP\temp> dir
    Directory: C:\TEMP\temp
Mode                LastWriteTime     Length Name

----                -------------     ------ ----

-a---         20-Jan-10   3:49 PM          0 Ephisode 1.wmv

-a---         20-Jan-10   3:49 PM          0 Ephisode 2.wmv

-a---         20-Jan-10   3:49 PM          0 Ephisode 3.wmv

-a---         20-Jan-10   3:49 PM          0 Ephisode 4.wmv

 

Let add series information at begin of the file name:

 

 PS C:\TEMP\temp> dir | %{$x=1} {rename-item $_ -NewName "E1-$x Scrubs -.wmv"; $x++}
PS C:\TEMP\temp> dir
    Directory: C:\TEMP\temp
Mode                LastWriteTime     Length Name

----                -------------     ------ ----

-a---         20-Jan-10   3:49 PM          0 E1-1 Scrubs -.wmv

-a---         20-Jan-10   3:49 PM          0 E1-2 Scrubs -.wmv

-a---         20-Jan-10   3:49 PM          0 E1-3 Scrubs -.wmv

-a---         20-Jan-10   3:49 PM          0 E1-4 Scrubs -.wmv

Ok, now I have a file with all ep. titles:

 My first day
My Mentor

My Best Friend's Mistake

My Old Lady

 

And with the following rows I add the title to the file name:

 PS C:\TEMP\temp> $title = Get-Content "..\titles.txt"
PS C:\TEMP\temp> dir | %{$x=0} {rename-item $_ -newname ("E1-" + ($x+1) + " Scrubs - " + $Title[$x] + ".wmv"); $x++ }

PS C:\TEMP\temp> dir
    Directory: C:\TEMP\temp
Mode                LastWriteTime     Length Name

----                -------------     ------ ----

-a---         20-Jan-10   3:49 PM          0 E1-1 Scrubs - My first day.wmv

-a---         20-Jan-10   3:49 PM          0 E1-2 Scrubs - My Mentor.wmv

-a---         20-Jan-10   3:49 PM          0 E1-3 Scrubs - My Best Friend's Mistake.wmv

-a---         20-Jan-10   3:49 PM          0 E1-4 Scrubs - My Old Lady.wmv

 

and now let’s add something at the end:

 PS C:\TEMP\temp> foreach ($f in dir) {rename-item $f -newname ($f.Name.Replace(".wmv", "- ripped by Nicold.wmv"))}
PS C:\TEMP\temp> dir
    Directory: C:\TEMP\temp
Mode                LastWriteTime     Length Name

----                -------------     ------ ----

-a---         20-Jan-10   3:49 PM          0 E1-1 Scrubs - My first day- ripped by Nicold.wmv

-a---         20-Jan-10   3:49 PM          0 E1-2 Scrubs - My Mentor- ripped by Nicold.wmv

-a---         20-Jan-10   3:49 PM          0 E1-3 Scrubs - My Best Friend's Mistake- ripped by Nicold.wmv

-a---         20-Jan-10   3:49 PM          0 E1-4 Scrubs - My Old Lady- ripped by Nicold.wmv

 

enjoy!

 

PS. Yes I love Scrubs:-)

Comments

  • Anonymous
    January 20, 2010
    um... Since you're file's new name is based on it's position is the dir stream, as opposed to it's original title, youmight want to put an sort in there...

  • Anonymous
    February 07, 2010
    If the files have square brackets: foreach ($f in dir) {move-item -literalpath $f ($f.Name.Replace(".wmv", "- ripped by Nicold.wmv"))}