Es ist langsam, weil das Skript alle Namen aller Videos finden muss, bevor es zufällig ausgewählt werden kann. Die Suche nach all diesen Dateien braucht Zeit. Ich kann mir keine einfache Möglichkeit vorstellen, um das zu umgehen.
Sie können jedoch ein paar Skripte erstellen. Die erste erstellt eine Liste der Videodateien und fügt sie in eine Datei ("videos.txt") ein:
$formats = @("*.avi","*.mkv") $dir = Split-Path $MyInvocation.MyCommand.Path gci "$dir\*" -include $formats -recurse | Set-Content .\videos.txt
Und das zweite Skript wählt eine Datei aus videos.txt aus und spielt sie ab:
Get-Content .\videos.txt | Get-Random -Count 1 | Invoke-Item
Das erste Skript ist langsam, aber das zweite ist schnell. Sie können vielleicht das erste Skript aus dem Windows Task Scheduler aufrufen, damit videos.txt auf dem neuesten Stand bleibt.