Suj*_*dke 2 windows vlc-media-player file-association powerdvd
我的硬盘上存储了很多视频。那些是 dvd 或更低质量的(480p,最大尺寸 7GB),我想使用 vlc 打开。高清画质(720p、1080p、7GB以上),我想用PowerDVD打开。
所有文件都具有相同的扩展名 (.mkv)。是否可以在 Windows 中对文件关联进行编程,以便它首先查看文件类型(在本例中为 mkv),然后查看文件大小。它应该根据其大小自动为 mkv 文件使用 vlc 或 PowerDVD。
请让我知道是否可以进行这样的调整。
您必须将 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"
)
Run Code Online (Sandbox Code Playgroud)以下是使用 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
Run Code Online (Sandbox Code Playgroud)注意#1:显然需要根据需要修改路径。此外,上面的代码将 500MB(= 524288000 字节)设置为阈值,因此也可以根据您的需要进行更改(尽管非常大的值可能仅在 VBScript 中才有可能)。
注意#2:如果您不确定手动编辑注册表,您可以随时使用FileTypesMan 等实用程序来执行步骤 1-2。
注意#3:使用批处理文件会导致控制台窗口闪烁,这可能会令人恼火。现在可以使用诸如Hidden Start或 VBScript 之类的东西来隐藏它,但是为什么首先直接使用 VBScript 更好呢?
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |