IMHO, você superou esse esforço.
Minha sugestão é para nós um simples forLoop.
$FileItems = Get-ChildItem -Path 'F:\Music' -Recurse -Include *.mkv,*.mp4
ForEach($FileItem in $FileItems)
{ "MKV or MP4 File Exists for $($FileItem.Name)"
#MoveFilesFunction
#RenameFilesFunction
#MoveMoviesFunction
#ConvertTVShowFunction
#MetaDataFunction
}
Como você já está solicitando apenas os tipos de arquivo específicos, isso ...
Senão {Write-Host "MKV ou MP4 não existe"}
... nunca será executado, não é necessário devido ao uso do seu filtro. O host de gravação nunca é necessário, a menos que você tenha um texto com código de cores ou outra formatação personalizada.
Isso ...
Write-Host "MKV ou MP4 não existe"
.. e isso ..
"MKV ou MP4 não existe"
... fará o mesmo. Envie texto para a tela, a outra opção é usar Write-Output contra o que você tem aqui.