Я искал способ открыть случайный видеофайл в моей папке, содержащей около 400 видео (20 видео в 20 подпапках).

Я нашел скрипт powershell и сумел его запустить, но каждый раз, когда я запускаю его, у меня уходит около 12 секунд, чтобы открыть какой-нибудь файл, не могли бы вы придумать какой-нибудь способ сделать его быстрее?

Мой сценарий random.ps1 выглядит следующим образом:

$formats = @("*.avi","*.mkv")
$dir = Split-Path $MyInvocation.MyCommand.Path
gci "$dir\*" -include $formats -recurse | Get-Random -Count 1 | Invoke-Item

Спасибо за помощь

1 ответ1

0

Это медленно, потому что сценарий должен найти все имена всех видео, прежде чем он может выбрать случайный. Поиск всех этих файлов занимает время. Я не могу придумать простой способ обойти это.

Однако вы могли бы сделать пару сценариев. Первый создает список видеофайлов и помещает его в файл ("videos.txt"):

$formats = @("*.avi","*.mkv")
$dir = Split-Path $MyInvocation.MyCommand.Path
gci "$dir\*" -include $formats -recurse | Set-Content .\videos.txt

И второй скрипт выбирает файл из videos.txt и воспроизводит его:

Get-Content .\videos.txt | Get-Random -Count 1 | Invoke-Item

Первый скрипт медленный, но второй быстрый. Возможно, вы могли бы вызвать первый скрипт из планировщика задач Windows, чтобы videos.txt был обновлен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .