Renomeando o arquivo do PowerShell

0

Eu tenho um script que encontrei e modifiquei um pouco para renomear arquivos Movie com nomes como os seguintes:

De

"The.Titan.2018.1080p.WEBRip.x264-[YTS.AM].mp4"

Para

"The Titan 2018.mp4"

Código que uso e modifico para minhas necessidades

Set-Location "X:\AUTOMATED_FILM_&_TV_SHOWS_SEPERATING_FOLDER\MOVIES"
Get-ChildItem | Where-Object{$_.BaseName -Match '(.*?\.(19|20)\d{2})\..*'} | Rename-Item -NewName {($_.BaseName -replace '(.*?\.(19|20)\d{2})\..*','$1')+$_.Extension}
dir -Filter *.mp4 | Rename-Item -NewName { $_.BaseName.replace("."," ") + $_.Extension }

Estou tendo problemas para descobrir como fazer modificações nesse código para renomear meus arquivos Programa de TV com nomes como os seguintes:

De

"Quantico.S03E04.720p.HDTV.x264-KILLERS.mp4"

Eu gostaria que alterasse o nome do arquivo

Para

"Quantico S03E04.mp4
    
por Connor Bracegirdle 25.05.2018 / 12:58

2 respostas

2

Você pode usar uma instrução de loop ForEach com o PowerShell e utilizar Método Split () iterando os arquivos com o Get-ChildItem comando e renomeie os arquivos de acordo, supondo que você sempre precise que os arquivos nessa pasta sejam renomeados com as partes antes do primeiro ponto e antes do segundo ponto mais a extensão original.

Exemplo de script

$Folder = "X:\AUTOMATED_FILM_&_TV_SHOWS_SEPERATING_FOLDER\MOVIES"
$Files = Get-ChildItem $Folder -filter "*.mp4" 

Foreach ($file in $Files){
    $s = [String]$file
    $ext = $file.Extension
    $name = ($s.Split(".")[0] + " " + $s.Split(".")[1] + $ext) 
    Rename-Item -Path $file -NewName $name
}

Mais recursos

por 25.05.2018 / 14:50
2

Oi tudo obrigado pela ajuda,

Pimp Juice obrigado por alterar a pergunta de forma mais adequada. Eu tive uma escavação na internet para o regex e fiz algumas tentativas e erros ..

Gerenciado para gerar um código que funcione, mas por todos os meios, ele obteve melhorias para torná-lo mais eficiente, mas para os nomes de arquivos que estou recebendo, não varie muito, então

O código que parece funcionar está abaixo

Set-Location "C:\Users\BRACEGIRDLE\Favorites\Desktop\RENAME"
Dir -Filter *.mkv | Get-ChildItem | Where-Object{$_.BaseName -Match "(.*?\.[A-Z][0-9][0-9][A-Z][0-9][0-9])\..*"} | Rename-Item -NewName {($_.BaseName -replace "(.*?\.[A-Z][0-9][0-9][A-Z][0-9][0-9])\..*",'$1')+$_.Extension}
Dir -Filter *.mkv | Rename-Item -NewName { $_.BaseName.replace("."," ") + $_.Extension }

Dir -Filter *.mp4 | Get-ChildItem | Where-Object{$_.BaseName -Match "(.*?\.(19|20)\d{2})\..*"} | Rename-Item -NewName {($_.BaseName -replace "(.*?\.(19|20)\d{2})\..*",'$1')+$_.Extension}
Dir -Filter *.mp4 | Rename-Item -NewName { $_.BaseName.replace("."," ") + $_.Extension }
    
por 25.05.2018 / 15:54

Tags