Como eu crio um script para reproduzir um vídeo aleatório de uma pasta designada?

2

Eu tenho uma pasta cheia de vídeos e gostaria de atribuir um script a um atalho que eu possa clicar para abrir um aleatoriamente no MPC-HC. Estou executando o Windows 7.

Idealmente, seria apenas um script para abrir um arquivo aleatório na pasta em que o arquivo de script é colocado. Então eu poderia colocar um em qualquer pasta que eu quisesse e definir um atalho para o script.

    
por user195525 04.02.2013 / 23:09

2 respostas

1

Sim, isso parece divertido. : -)

Crie um arquivo chamado PlayRandom.bat e cole o seguinte script nele.

@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

Altere *.txt em cada linha For para qualquer extensão de arquivo usada por seus filmes. Você pode escrever várias extensões separadas por espaços, por exemplo *.mpg *.avi *.divx

A linha Start abrirá o arquivo no programa padrão. Você pode querer mudar isso para rodar o seu player de filme, como:

"C:\Program Files\MPC-HC\MPC-HC.exe" "%RandomFile%"
    
por 04.02.2013 / 23:51
1

Este script do PowerShell seleciona um vídeo aleatório da pasta do script e o reproduz

  1. Salve o seguinte código como somefilename.ps1 dentro da sua pasta de filmes. Observe a extensão .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. Crie um atalho para o seu powershell.exe . Caminho padrão no Windows 7 é

    %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
    
  3. Modifique a linha alvo do seu atalho e anexe-a para executar o script Powershell

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

O que ajustar

  • Remova -recurse se você quiser pesquisar apenas na sua raiz e não nas subpastas também
  • Expanda a lista $formats se você tiver formatos de contêiner de arquivo exóticos

Comandos usados: Split-Path , Get-ChildItem , Get-Random , Invoke-Item

    
por 04.02.2013 / 23:55