Связывание файлов Windows в зависимости от типа файла и его размера
У меня есть много видео, хранящихся на моем жестком диске. Те, которые имеют DVD или более низкое качество (480p, максимальный размер 7 ГБ), я хотел бы открыть с помощью vlc. Те, которые имеют качество HD (720p, 1080p, размер больше 7 ГБ), я хотел бы открыть с помощью PowerDVD.
Все файлы имеют одинаковое расширение (.mkv). Можно ли запрограммировать ассоциацию файлов в Windows так, чтобы она сначала смотрела на тип файла (в данном случае mkv), а затем также на размер файла. Он должен автоматически использовать VLC или PowerDVD для файлов MKV, в зависимости от его размера.
Пожалуйста, дайте мне знать, если такая настройка возможна.
1 ответ
Вам нужно будет связать расширение MKV с командным файлом или скриптом PowerShell/VB, который, в свою очередь, выполняет проверку размера файла и вызывает соответствующее приложение.
Вот как это сделать с помощью командного файла:
Откройте regedit, перейдите к
HKEY_CLASSES_ROOT\.mkv
и обратите внимание на значение (по умолчанию). Это ProgID. Давайте предположим, что это mkvfile.Перейдите к
HKEY_CLASSES_ROOT\mkvfile\shell\open\command
и измените значение (по умолчанию) на что-то вроде"D:\MKVSizeCheck.bat" "%1"
,Теперь создайте
D:\MKVSizeCheck.bat
командный файл со следующим содержимым:if %~z1 leq 524288000 ( start "" /max "C:\Program Files\VLC\VLC.exe" "%~1" ) else ( start "" /max "C:\Program Files\PowerDVD\PowerDVD.exe" "%~1" )
Вот как это сделать с VBScript:
То же, что и выше.
Перейдите к
HKEY_CLASSES_ROOT\mkvfile\shell\open\command
и измените значение (по умолчанию) на что-то вродеwscript //B "D:\MKVSizeCheck.vbs" "%1"
,Теперь создайте
D:\MKVSizeCheck.vbs
файл со следующим содержимым:set objArgs = WScript.Arguments set objShell = WScript.CreateObject("WScript.Shell") set objFSO = WScript.CreateObject("Scripting.FileSystemObject") if objFSO.GetFile(objArgs.Item(0)).Size <= 524288000 then objShell.Run """C:\Program Files\VLC\VLC.exe"" """ & objArgs.Item(0) & """", 3, false else objShell.Run """C:\Program Files\PowerDVD\PowerDVD.exe"" """ & objArgs.Item(0) & """", 3, false end if
Примечание № 1: Измените пути, как требуется, очевидно. Также приведенный выше код устанавливает 500 МБ (= 524288000 байт) в качестве порога, поэтому измените его также в соответствии с вашими потребностями (хотя очень большие значения могут быть возможны только в VBScript).
Примечание № 2: Вы всегда можете использовать такую утилиту, как FileTypesMan, чтобы выполнить шаги 1-2, если вы не уверены в том, что вручную редактируете реестр.
Примечание № 3: Использование командного файла вызовет мигание окна консоли, что может раздражать. Теперь это можно скрыть, используя что-то вроде Hidden Start или VBScript, но зачем беспокоиться, когда лучше сразу использовать VBScript.