gpt4 book ai didi

batch-file - 自动化默认程序关联

转载 作者:行者123 更新时间:2023-12-05 06:21:18 25 4
gpt4 key购买 nike

我正在编写一个批处理脚本来自动化更改特定文件类型的默认程序关联的过程。

文件类型定义完美,我正在使用此命令更改打开它们的默认程序,例如:

ftype giffile="%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll" "%1"

但是运行之后,什么都不会改变!

“giffile”只是我尝试更改默认程序关联的文件类型的一个示例。

我错过了什么? (如果有更好的解决方案,建议会很棒)

EDIT: with ftype i could just be able to add the program to the "open with" list and that doesn't change default program used to open specific filetype.

最佳答案

哦,这很好,我花了几个小时才找到不当行为。为了对此进行测试,我引用了 .txt 文件。问题是,据我所知,您的数据类型已经被另一个system-internal 程序打开。在我的例子中,.txt 连接到 Worpad。因此,如果您乱用注册表(assoc 和 ftype 没有做任何其他事情),无论如何,它总是会回退到写字板。即使在您尝试将其更改为另一个程序时,它也会回退。

为了验证此行为,您可以简单地考虑一个新的(未连接的)文件扩展名并尝试将您的程序与它关联。例如,.log 与我的系统没有关联,因此对 .log 文件执行以下步骤会立即按照我想要的方式更改其打开程序。如果日志已经为您连接,请考虑一些全新的东西。

所以第一步是不要让它回退到写字板。由于写字板是 Windows 的可选功能,我们首先必须将其卸载。这在软件->程序->可选功能中最简单,然后在此处选择它以将其卸载。由于您更喜欢使用批处理脚本的编程方式,我可以推荐 dism 命令,可以通过将“删除”替换为“添加”来反转该命令。

dism /Online /Remove-Capability /CapabilityName:Microsoft.Windows.WordPad~~~~0.0.1.0

在此之后,如果您双击一个 txt 文件,它将不再默认打开。然后,正如这个问题的许多不同答案中所述,您需要更改文件扩展以按您希望的方式运行,就是调用

assoc .txt

这会给你“txtfile”作为返回值。然后将 txt 文件类型与您希望打开类型的程序连接。确保它是 txtfile 而不是文本文件。我有点困惑这两者对我来说是哪一个,我认为 Windows 标准是 txtfile。错别字在这里可能很丑陋。

ftype txtfile="exampleprogram.exe" "%1"
  • 请记住,在批处理中您需要使用 %%1,因为第一个 % 已被转义。如果省略 %1,程序会在双击时启动,但不会显示实际打开的文件。
  • 之所以使用引号,是因为大多数程序的文件路径中都有一个空格。
  • 我的示例卸载写字板。虽然将所有文件类型重定向到您用来替换 .txt 的程序应该没有问题,但请记住 .bat 和 .ini 文件默认情况下也由写字板打开,也许更多。

我包含了 txtfile 示例,因为这对我有用,您明确指出 giffile 只是一个示例。适应你的 giffile 差异是首先摆脱照片应用程序。研究表明,这也可以通过编程方式完成。

关于batch-file - 自动化默认程序关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59897522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com