Executando verificação de segurança...
2
$path = "D:\Pasta dos Alunos\Turma [0-9]\Word"
$regex = "^.+8.+-\s([\w\s]*).docx$"
Get-ChildItem -Path $path -Recurse | ForEach-Object {
if($.FullName -match $regex) {
$name = $Matches[1].Trim().ToLower()
$name = $textInfo.ToTitleCase($name)
$name = $name -replace '\s+', ' '
$newName = "Aula 08 - Avaliação Word - $name.docx"
Rename-Item -Path $.FullName -NewName $newName
}
}

so dando uma mudada aqui e ali, mas nao sei se é o resultado esperado. roda ai e me diz.

Carregando publicação patrocinada...
1

Sim, realmente chega no mesmo resultado. Obrigado por mostrar um método utilizando Pipelines. Eu tentei fazer algo utilizando Pipe mas não tava encontrando referência nem entendendo direito como funciona, mas ficou bem claro no seu código.

Apenas duas observações:

  • corrigi $.Fullname --> $_.Fullname para funcionar. Mas deu certinho.

  • E só um detalhezinho no regex do $path na parte da "Turma [0-9]". É que se faltar o * ele só encontra se houver 1 digito. E no caso de houver por exemplo Turma 23 acredito que não encontraria. (Ou poderia ser também um + ao invés de *)

Mas foi só isso até onde consegui observar.
Valeu demais!

1