Hey tweakers,
Ik werd beetje ziek en vervelend om elke subtitle file die ik downloade te hernoemen naar de episode file dus bedacht ik waarom geen scripje ervoor maken met powershell.
Welke irritatie?
Liefst kijk ik series met ondertitelingen erbij. Dit vind ik fijner aangezien ik het soms niet kan volgen zonder het te kunnen lezen (moeilijke woorden enz.). Helaas zijn de subtitle bestanden altijd anders dan de files die ik heb. Ik download me series met Sickbeard en ze worden dus op een bepaalde manier opgeslagen op me hdd.
Nou is 1 file renamen niet zo irriterent, maar ik zit vaak in de serie en kijk meerdere eps achter elkaar waardoor het wel irritant wordt.
Maar waarom met Powershell
De reden waarom ik voor Powershell heb gekozen is omdat ik veel nut zie in deze scripttaal. Ik wil graag veel leren met Powershell zodat ik later in het bedrijfsleven veel meer dingen kan automatiseren. Door veel oefenen en keertje niet opgeven hoop ik ervaring op te kunnen doen en later AD's bouwen met alleen Powershell.
Heel leuk maar leg eens het scriptje uit
Het scripje is tot nu toe nog simpel en alleen nog maar door mij getest. Het scripje gaat kijken naar welke bestanden er zitten in je seriemap. Tot nu toe kan hij nog maar 1 serie en 1 seizoen per keer aan maar hoop dit te kunnen veranderen.
Hij loopt dan langs alle episodes heen en geeft ze een eigen $variable. Zelfde met alle subtitle bestanden die in het zelfde mapje zitten.
Daarna gaat hij alle subtitle namen vervangen met de episode naam en klaar is kees.
Best Geinig maar heb je hier nog echt iets aan?
Persoonlijk vind ik van wel. Hierdoor blijft je serie map overzichtelijker en schoner eruit zien. Door alle bestanden het zelfde namenstructuur te geven kan je rustiger door de map heen kijken (verschillende groters geeft drukte op je ogen).
Grootste voordeel ervan is dat als je aflevering gaat kijken programma's zoals VLC player gelijk de subtitle erbij pakt en hierdoor niet heen te slepen of subtitle toe te voegen.
Klinkt leuk, kan ik het ergens downloaden om te testen?
Tuurlijk daar hoopte ik eigelijk al op. Ik wil graag feedback hebben op wat mensen denken dat anders kan of makkelijker. Ook graag als mensen me met sommige dingen kunnen helpen zou het geweldig zijn.
Subtitle Renamer V0.1C#:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| ############################################################ .
#### Subtitle Renamer Script V0.1 ####
#### Gemaakt Door Niels de Blok ####
#### Gemaakt om Subtitle files aan te passen ####
#### Naar de Filename van de Episode ####
#### Laatste Update van de Script ####
#### Datum: 1-Feb-2013 5:50PM ####
############################################################
#De variabelen goedzetten.
#Nu staat de variable voor $dir nog op handmatig Maar in latere update wordt dit naar user-input gebracht.
#$Movies en $subtitles zoeken in de $dir naar bestanden met de extenties .mkv en .srt
$dir = "C:\Users\niels\Documents\Downloads\Series\Arrow"
$Movies = Get-ChildItem $dir -Filter *.mkv
$subtitels = Get-ChildItem $dir -filter *.srt
#$Currentdir slaat de directory op waar powershell zich momenteel bevind zodat wanneer script is afgelopen de user
#Weer terug is bij zijn huidige locatie
$currentdir = Get-Location
#Voorwoord voor het scripje om het wat professioneler eruit laten te zien. Naast alle spellingsfouten die erin zitten.
Clear-host
Write-host "Welkom bij de Powershell Subtitle Renamer" -BackgroundColor Black -ForegroundColor Yellow
#Een do-until loop om te zorgen dat er een getal wordt ingevoerd om naar te zoeken.
#Hiermee wordt er ook verkomen dat een letter wordt ingevoerd en de script crashed.
Do{
$sz = read-host "Zeg het eens, Welke seizoen moet ik renamen?"
}
until($sz -match "[0-9]")
#Foreach zorgt ervoor dat alle Episodes worden langsgelopen en een actie mee wordt gedaan.
foreach($movie in $movies){
#De switch kijkt naar of er een match is tussen de $movie en 1 van zijn keuzes.
#is er een keuze dan krijgt die een eigen param met zijn episode nummer.
Switch -Exact ($movie)
{
{($_ -match $sz+"x01") -or ($_ -match "S0"+$sz+"E01")} {$ep1 = $movie; break}
{($_ -match $sz+"x02") -or ($_ -match "S0"+$sz+"E02")} {$ep2 = $movie; break}
{($_ -match $sz+"x03") -or ($_ -match "S0"+$sz+"E03")} {$ep3 = $movie; break}
{($_ -match $sz+"x04") -or ($_ -match "S0"+$sz+"E04")} {$ep4 = $movie; break}
{($_ -match $sz+"x05") -or ($_ -match "S0"+$sz+"E05")} {$ep5 = $movie; break}
{($_ -match $sz+"x06") -or ($_ -match "S0"+$sz+"E06")} {$ep6 = $movie; break}
{($_ -match $sz+"x07") -or ($_ -match "S0"+$sz+"E07")} {$ep7 = $movie; break}
{($_ -match $sz+"x08") -or ($_ -match "S0"+$sz+"E08")} {$ep8 = $movie; break}
{($_ -match $sz+"x09") -or ($_ -match "S0"+$sz+"E09")} {$ep9 = $movie; break}
{($_ -match $sz+"x10") -or ($_ -match "S0"+$sz+"E10")} {$ep10 = $movie; break}
{($_ -match $sz+"x11") -or ($_ -match "S0"+$sz+"E11")} {$ep11 = $movie; break}
{($_ -match $sz+"x12") -or ($_ -match "S0"+$sz+"E12")} {$ep12 = $movie; break}
{($_ -match $sz+"x13") -or ($_ -match "S0"+$sz+"E13")} {$ep13 = $movie; break}
Default {Write-host "Leuk geprobeerd"}
}
}
#Foreach zorgt ervoor dat alle subtitles worden langsgelopen en een actie mee wordt gedaan.
Foreach($sub in $subtitels){
#De switch kijkt naar of er een match is tussen de $sub en 1 van zijn keuzes.
#is er een keuze dan krijgt die een eigen param met zijn subtitle episode nummer.
Switch -Exact ($sub)
{
{($_ -match $sz+"x01") -or ($_ -match "S0"+$sz+"E01")} {$subep1 = $sub; break}
{($_ -match $sz+"x02") -or ($_ -match "S0"+$sz+"E02")} {$subep2 = $sub; break}
{($_ -match $sz+"x03") -or ($_ -match "S0"+$sz+"E03")} {$subep3 = $sub; break}
{($_ -match $sz+"x04") -or ($_ -match "S0"+$sz+"E04")} {$subep4 = $sub; break}
{($_ -match $sz+"x05") -or ($_ -match "S0"+$sz+"E05")} {$subep5 = $sub; break}
{($_ -match $sz+"x06") -or ($_ -match "S0"+$sz+"E06")} {$subep6 = $sub; break}
{($_ -match $sz+"x07") -or ($_ -match "S0"+$sz+"E07")} {$subep7 = $sub; break}
{($_ -match $sz+"x08") -or ($_ -match "S0"+$sz+"E08")} {$subep8 = $sub; break}
{($_ -match $sz+"x09") -or ($_ -match "S0"+$sz+"E09")} {$subep9 = $sub; break}
{($_ -match $sz+"x10") -or ($_ -match "S0"+$sz+"E10")} {$subep10 = $sub; break}
{($_ -match $sz+"x11") -or ($_ -match "S0"+$sz+"E11")} {$subep11 = $sub; break}
{($_ -match $sz+"x12") -or ($_ -match "S0"+$sz+"E12")} {$subep12 = $sub; break}
{($_ -match $sz+"x13") -or ($_ -match "S0"+$sz+"E13")} {$subep13 = $sub; break}
Default {Write-host "Leuk geprobeerd"}
}
}
#
Function Rename {
CD $dir
#Hernoemem van de subtitle file met de episode name +.srt erachter om zijn extentie te behouden
Rename-Item $subep1 ($ep1.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep2 ($ep2.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep3 ($ep3.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep4 ($ep4.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep5 ($ep5.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep6 ($ep6.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep7 ($ep7.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep8 ($ep8.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep9 ($ep9.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep10 ($ep10.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep11 ($ep11.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep12 ($ep12.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep13 ($ep13.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
Rename-Item $subep14 ($ep14.BaseName+".srt") -ErrorAction SilentlyContinue -Confirm
$currentdir
}
#met & Rename roepen we de functie op
& Rename
############################################################ .
#### To-do List ####
#### Userkeuze maken voor Directory ####
#### Meerdere Extenties testen En Ondersteunen ####
#### Meerdere Eps ondersteunen ####
#### Controle Serie naam Ep en Subtitle ####
#### Mooiere Menu erbij maken ####
############################################################
|
Alvast bedankt voor de feedback en mocht er vragen zijn stel ze gerust.
Nielsjuhz wijzigde deze reactie 01-02-2013 19:07 (55%)
Reden: In code tag zetten