Come aprire un file random in una cartella e impostare che solo i file con gli estensioni di nome di file specificati dovrebbero essere aperti?

Come aprire un file random in una cartella e impostare che solo i file con gli estensioni di nome di file specificati dovrebbero essere aperti? (Anche se preferibilmente support anche i nomi di file Unicode).

Ho già guardato intorno e ho trovato questo script batch (.BAT):

@echo off & setlocal :: start of main rem Set your path here: set "workDir=C:\DVDCOVERS" rem Read the %random%, two times is'nt a mistake! Why? Ask Bill. rem In fact at the first time %random% is nearly the same. @set /a "rdm=%random%" set /a "rdm=%random%" rem Push to your path. pushd "%workDir%" rem Count all files in your path. (dir with /b shows only the filenames) set /a "counter=0" for /f "delims=" %%i in ('dir /b ^|find "."') do call :sub1 rem This function gives a value from 1 to upper bound of files set /a "rdNum=(%rdm%*%counter%/32767)+1" rem Start a random file set /a "counter=0" for /f "delims=" %%i in ('dir /b ^|find "."') do set "fileName=%%i" &call :sub2 rem Pop back from your path. popd "%workDir%" goto :eof :: end of main :: start of sub1 :sub1 rem For each found file set counter + 1. set /a "counter+=1" goto :eof :: end of sub1 :: start of sub2 :sub2 rem 1st: count again, rem 2nd: if counted number equals random number then start the file. set /a "counter+=1" if %counter%==%rdNum% (start "" "%fileName%") goto :eof :: end of sub2 :: -snap--- end of batch 

Fonte: http://forums.majorgeeks.com/showthread.php?t=181574

  • Rinominare i file in un file batch
  • Perché cmd non verrà chiuso dopo l'esecuzione del file batch?
  • script o batch spostano file da più sottodirectory a parent
  • Batch convertire le immagini TIFF in PDF?
  • PowerShell e file batch
  • Array popolamento nello script batch di DOS
  • Funziona per aprire qualsiasi file random in una cartella, ma vorrei essere in grado di impostare che solo i file con l'estensione di file di nome specificato dovrebbero essere aperti. (ad esempio una cartella contiene i file .MKV (video), .TP (video), .MP4 (video) e .JPG (image) e vorrei aprire casualmente solo i file video e non i file image .JPG.)

    Non support anche i nomi di file Unicode. Esegue l'output di Windows questo messaggio di errore se apre casualmente un file con un nome di file Unicode:

    Windows non riesce a trovare (nome file di file con nome file Unicode, con i caratteri Unicode sostituiti da un punto interrogativo) . Assicurarsi di aver digitato correttamente il nome e riprovare.

    Finalità:

    • Se desideri guardare un video random da una cartella, ma la cartella contiene anche file non video
    • Se si desidera visualizzare un'image random da una cartella, la cartella contiene anche file non di image.
    • Eccetera.

    Suggerimenti per migliorare il codice file .BAT (in particolare la "casualità", poiché spesso ho lo stesso file due o tre volte in successione) o un'altra soluzione migliore (anche uno script non batch) è benvenuto. Sto usando Windows 7.

  • Come limitare il numero di risultati di Unix FIND
  • Come get il valore della data in commandline
  • File batch di Windows o script per caricare i profili XML Wi-Fi esportti su un nuovo computer porttile
  • Utilizzare Wget per ricercare indebitamente un sito e scaricare immagini
  • Come si può eseguire automaticamente uno script dopo la connessione a una VPN su OS X?
  • Come posso impostare lo background del desktop in Windows da uno script?
  • 2 Solutions collect form web for “Come aprire un file random in una cartella e impostare che solo i file con gli estensioni di nome di file specificati dovrebbero essere aperti?”

    In Python, è ansible aprire un file JPG random come questo:

     import glob,random,os files = glob.glob("*.jpg") file = random.choice(files) print "Opening file %s..." % file cmd = "rundll32 url.dll,FileProtocolHandler \"" + file + "\"" os.system(cmd) 

    Per aprire file video come .MKV, .MP4 e .TP, sostituire i files = glob.glob("*.jpg") linea files = glob.glob("*.jpg") con queste righe:

     files = glob.glob("*.mkv") files.extend(glob.glob("*.mp4")) files.extend(glob.glob("*.tp")) 

    Questa è un'aggiunta alla risposta di poplitea .

    Per utilizzare lo script Python nella risposta di poplitea , ho salvato lo script Python in C:\Programs\Scripts\ , con il nome del file, open-random-video.py (script di Python che apre i video casuali).

    Ho quindi salvato il seguente script come un file batch (.BAT) :

    C:\Python27\python.exe "C:\Programs\Scripts\open-random-video.py" cd

    Si noti che: C:\Python27\ è where è installato Python. Questa directory può variare a seconda di where è stato installato Python. cd significa la directory corrente.

    Posso quindi mettere il file .BAT nelle cartelle che voglio aprire file casuali e eseguire semplicemente il file .BAT se voglio un file random aperto in quella cartella.

    Siamo il genio del computer e della rete.