2

Как открыть случайный файл в папке и установить, что должны открываться только файлы с указанным расширением (ями) имени файла? (Хотя желательно, поддержка имен файлов Unicode тоже.)

Я уже посмотрел вокруг и нашел этот пакетный скрипт (.ЛЕТУЧАЯ МЫШЬ):

@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

Источник: http://forums.majorgeeks.com/showthread.php?t=181574

Он работает при открытии любого случайного файла в папке, но я хотел бы иметь возможность установить, что должны открываться только файлы с указанным расширением (ями) имени файла. (например, папка содержит.MKV (видео).ТП (видео).MP4 (видео) и др.JPG (файлы изображений), и я хотел бы случайным образом открывать только видео файлы, а не.Файлы изображений JPG.)

Он также не поддерживает имена файлов Unicode. Windows выводит это сообщение об ошибке, если случайным образом открывает файл с именем файла Unicode:

Windows не может найти (имя файла с именем файла Unicode, символы Unicode заменены знаком вопроса). Убедитесь, что вы правильно ввели имя, и попробуйте еще раз.

Цели:

  • Если вы хотите посмотреть случайное видео из папки, но папка также содержит не видео файлы
  • Если вы хотите просмотреть случайное изображение из папки, но папка также содержит файлы не изображения.
  • И т.п.

Предложения по улучшению.Приветствуется код BAT-файла (особенно «случайность», поскольку я часто получаю один и тот же файл два-три раза подряд) или другое лучшее решение (даже не пакетный скрипт). Я использую Windows 7.

2 ответа2

0

В Python вы можете открыть случайный JPG-файл, например так:

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)

Чтобы открыть видео-файлы, как.MKV,.MP4 а.TP, замените строку files = glob.glob("*.jpg") на эти строки:

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

Это дополнение к ответу poplitea.

Чтобы использовать скрипт Python в ответе poplitea, я сохранил скрипт Python в C:\Programs\Scripts\ с именем файла open-random-video.py (скрипт Python, который открывает случайные видео).

Затем я сохранил следующий скрипт как командный файл (.BAT):

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

Обратите внимание: C:\Python27\ - это то место, где установлен Python. Этот каталог может меняться в зависимости от того, где вы установили Python. cd означает текущий каталог.

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

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