Скрипт Powershell для открытия случайного видео

1493
Per DeDor

Я искал способ открыть случайный видеофайл в моей папке, содержащей около 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 

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

0
Это быстрее, если у вас уже есть выбранный видеоплеер? Если вы удалите `| Invoke-Item`, он завершается почти мгновенно? Jeeva 9 лет назад 1
Если у меня уже открыт видеоплеер, это не улучшит время ожидания и когда я удалю | Invoke-Item видео не будет воспроизводиться, оно просто записывает имя видео в консоль. Per DeDor 9 лет назад 0
На самом деле, это не так. Но письмо почти мгновенно? Jeeva 9 лет назад 0
Нет, запись еще отложена Per DeDor 9 лет назад 0
Кажется, задержка на поиске, хотя моя система, очевидно, очень быстро. Я предполагаю, что вы либо смотрите на медленный диск, либо на что-то по сети в другой системе. Ответ ниже, касающийся кеширования, достаточно близок к тому, что я собирался предложить дальше. Jeeva 9 лет назад 0

1 ответ на вопрос

0
dangph

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

Однако вы могли бы сделать пару сценариев. Первый создает список видеофайлов и помещает его в файл ("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 был обновлен.

Это было действительно полезно! Задержка теперь примерно в 5 раз лучше. Per DeDor 9 лет назад 0

Похожие вопросы