2

У меня есть папка с видео, и я хочу назначить сценарий ярлыку, который я могу щелкнуть, чтобы открыть случайный сценарий в MPC-HC. Я использую Windows 7.

В идеале это просто скрипт для открытия случайного файла в папке, в которой находится файл скрипта. Затем я мог бы просто поместить его в любую папку и установить ярлык для сценария.

2 ответа2

1

Да, это звучит как весело. :-)

Создайте файл с именем PlayRandom.bat и вставьте в него следующий скрипт.

@Echo Off
SetLocal EnableDelayedExpansion
CD /D %~dp0
Set Count=0
For /F "tokens=*" %%f In ('Dir /A-D /B *.txt') Do (Set /A Count=!Count!+1)
Set /A Skip=%Random%%%%Count%
If %Skip%==0 (Set Skip=) Else (Set Skip=skip=%Skip%)
Set RandomFile=
For /F "%Skip% tokens=*" %%f In ('Dir /A-D /B *.txt') Do (If "!RandomFile!"=="" Set RandomFile=%%f)
Start "%RandomFile%"
EndLocal

Измените *.txt в каждой строке For на любое расширение файла, которое используют ваши фильмы. Вы можете написать несколько расширений, разделенных пробелами, например *.mpg *.avi *.divx

Строка Start откроет файл в программе по умолчанию. Вы можете изменить это, чтобы запустить проигрыватель фильмов, например:

"C:\Program Files\MPC-HC\MPC-HC.exe" "%RandomFile%"
1

Этот сценарий PowerShell выбирает случайное видео из папки сценария и воспроизводит его

  1. Сохраните следующий код как somefilename.ps1 в папке с фильмом. Обратите внимание на расширение .ps1

    $formats = @("*.avi","*.mp4","*.flv","*.mpg","*.wmv","*.mpeg","*.mov")
    $dir = Split-Path $MyInvocation.MyCommand.Path
    gci "$dir\*" -include $formats -recurse | Get-Random -Count 1 | Invoke-Item
    
  2. Создайте ярлык для вашего powershell.exe. Путь по умолчанию в Windows 7

    %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
    
  3. Измените целевую строку вашего ярлыка и добавьте ее, чтобы выполнить скрипт Powershell

    -executionpolicy bypass -File "D:\your\video\path\somefilename.ps1"
    

Что настроить

  • Удалите -recurse если вы хотите искать только в своей корневой папке, а не в подпапках
  • Раскройте список $formats если у вас есть экзотические форматы контейнеров

Используемые команды: Split-Path, Get-ChildItem, Get-Random, Invoke-Item

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