powershell - 从命令行在 Windows 10 中获取文件类型关联的最佳方法?

标签 powershell command-line windows-10

我知道我可以在命令行上使用 assoc 和 ftype 来获取文件类型关联。所以当我这样做时:

enter image description here

我的印象是 .html 文件是用 iexplorer 打开的。

但是 html 文件使用 chrome 打开,因为 chrome 已被设置为 html 文件的默认应用程序。

enter image description here

当程序确实用 chrome 打开时,为什么 ftype 会给我 iexplorer?

最佳答案

似乎 ftype 和 assoc 在运行 Windows 8 或更高版本的系统上非常无用。

这是因为 Microsoft 在 Windows 8 中决定用户只能通过内置 GUI 设置默认程序。这可能是由于安全原因和应用程序劫持文件类型关联的问题。

因此引入了一个新的注册表项,Windows 现在将用户选择写入

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\<extension>\UserChoice

该键包含一个 Prog-Id 和一个哈希值。正确的 Hash 值证明 UserChoice ProgId 值是由用户设置的,而不是由任何其他应用程序设置的。如果哈希无效,Windows 会将用户选择重置为默认应用程序。
ftype command但是不知道上面的注册表项。

它读取 HKCR\htmlfile\shell\open\command\(Default)注册表项并打印出结果。

因此,ftype 命令的结果无法用于确定哪个应用程序与特定文件扩展名相关联。

关于powershell - 从命令行在 Windows 10 中获取文件类型关联的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51715292/

相关文章:

google-chrome - SSLKEYLOGFILE 环境变量不填充任何文本文件

更新到 Windows 10 后,TortoiseSVN 图标覆盖不显示

Android Studio Build 在 Windows 10 上使用 100% CPU

winforms - 从 PowerShell 调用 Messagebox.Show() 并使用多个默认按钮?

azure - 删除/删除通过 powershell 旋转新虚拟机时创建的所有资源

xml - 如何让 Powershell 更快地解析 XML 或进一步优化我的脚本?

perl - 如何在 Perl 单行代码中打印正在处理的文件的名称?

c# - 何时使用 Powershell 与 C# 进行开发?

linux - 如何在 *nix shell 中一次使用一个参数执行命令?

linux - POSIX 或 Linux 获取 shell 进程唯一 ID 的方法