找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 1738|回复: 8

[问题求助] 求设置指定扩展名的文件关联

[复制链接]
发表于 2026-5-27 13:13:55 | 显示全部楼层 |阅读模式

我想用powershell代码设置.mp4和.mkv,.mp3文件的关联, 双击后直接使用C:\Program Files\MPV\mpv.exe程序打开, 代码要简洁有效

试了多个ai, 几十轮下来居然无解.
 楼主| 发表于 2026-5-27 13:52:08 | 显示全部楼层
https://github.com/DanysysTeam/PS-SFTA
gg搜索找到了上面的方法, 选项mark
发表于 2026-5-28 11:04:07 | 显示全部楼层
本帖最后由 wankoilz 于 2026-5-28 11:07 编辑

第一步:用assoc可以查看扩展名对应的文件类型,比如assoc .jpg可以得到.jpg=jpegfile
第二步:使用ftype jpegfile=openCommandString就可以修改该类型文件的打开方式(只输入ftype jpegfile的话,可以查看目前的打开方式)。
这两个命令是windows自带的。

供参考,powershell没咋用过。
发表于 2026-5-28 11:05:41 | 显示全部楼层
万变不离其宗,本质上还是修改注册表:)

SFTA.zip

5.13 KB

发表于 2026-5-28 11:06:45 | 显示全部楼层
小白龙 发表于 2026-5-27 13:52
https://github.com/DanysysTeam/PS-SFTA
gg搜索找到了上面的方法, 选项mark

请教一下你找到的这个方法是如何实现顶楼要求的“双击后直接使用”?
发表于 2026-5-31 10:45:18 | 显示全部楼层
  1. @echo off
  2. :: 自动以管理员身份运行
  3. >nul 2>&1 reg query "HKU\S-1-5-19" || (
  4.     powershell -Command "Start-Process '%~f0' -Verb RunAs"
  5.     exit /b
  6. )

  7. set MPVDIR=C:\Program Files\MPV
  8. set MPVCOM=%MPVDIR%\mpv.exe

  9. powershell -NoProfile -ExecutionPolicy Bypass -Command ^
  10. "$mpv='%MPVCOM%';" ^
  11. "$e=@('.mp4','.mkv','.mp3');" ^
  12. "foreach($x in $e){" ^
  13.    "$ft='mpv'+$x.Replace('.','');" ^
  14.    "cmd /c assoc $x=$ft;" ^
  15.    "cmd /c ('ftype '+'$ft=\"'+$mpv+'\" \"%1\"')" ^
  16. "}"

  17. exit
复制代码
发表于 2026-5-31 12:07:53 | 显示全部楼层
本帖最后由 aloha20200628 于 2026-5-31 12:53 编辑

    一。实测 win10+ 系统,在注册表位置 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp4\UserChoice 增加了哈希键值校验,win11 系统注册表在同一位置还增加了 userChoiceLatest 分项,也有哈希键值校验,总之,不修改相应的哈希值或修改值不被认可,仅对指定默认应用的 assoc+ftype 重置均无效。
    二。在 win11 25H2 实测,简单采用 assoc+ftype 方法确实无效,用右键 '打开方式' 修改默认应用的方法是可靠有效的,会自动调整注册表相应位置的哈希值。
    三。经 ai 披露,所谓第三方的 setuserFTA.exe,关键是破解了注册表相应哈希值的生成算法,但一旦被官方系统升级,还须第三方跟进维护。

评分

参与人数 1技术 +1 收起 理由
czjt1234 + 1 感谢分享

查看全部评分

 楼主| 发表于 2026-6-2 19:16:15 | 显示全部楼层
ShowCode 发表于 2026-5-28 11:06
请教一下你找到的这个方法是如何实现顶楼要求的“双击后直接使用”?

我说的双击指的是双击视频
 楼主| 发表于 2026-6-2 19:18:36 | 显示全部楼层

这不行的, 好像得先删mlayer的关联
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-6-18 03:05

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表