내 폴더는 다음과 같습니다.
Dexter\Season 1\season 1 ep 1
Dexter\Season 1\season 1 ep 1
Dexter\Season 2\season 1 ep 1
Dexter\Season 2\season 1 ep 1
Dexter\Season 3\season 1 ep 1
Dexter\Season 3\season 1 ep 1
나는 현재 Dexter\
내가하고 싶은 일은 Dexter의 모든 하위 폴더를 반복하고 그에 따라 모든 파일의 이름을 바꾸는 것입니다.
Dexter\Season 1\season 1 ep 1 -> Dexter\Season 1\1x1
어떻게하면 되나요?
답변
어쨌든 내 여름을 낭비하고 있기 때문에 도움이되는 일을하고 대본을 쓸 수도 있습니다. Windows를 사용한다고 가정하면 다음 PowerShell 스크립트는 시나리오에 적합합니다 (.ps1 파일로 저장하고 맨 위에 경로를 수정하기 만하면 됨).
$TVShowFolderPath = "X:\Series\Dexter";
$TVShowSeasons=$(get-childitem "$TVShowFolderPath");
foreach( $s in $TVShowSeasons)
{
if( ($s.PSisContainer) -and ($s -imatch "^(Season )(\d{2}|\d{1})$") )
{
$season = $matches[2];
write-host "Season $season";
$episodes=$(get-childitem $s.FullName);
foreach( $ep in $episodes)
{
if( $ep -imatch "^(season) (\d{2}|\d{1}) (ep) (\d{2}|\d{1})(.*)$")
{
$newName = "$($season)x$($matches[4])$($matches[5])";
write-host "`tEpisode: `"$($ep.Name)`" --> `"$newName`"";
Rename-Item $ep.FullName $newName;
}
}
}
}
올바른 이름을 내뱉는지 확인하려면 “Rename-Item”으로 시작하는 줄을 주석 처리하십시오.