assoc 和 ftype 提供扩展与要为该扩展启动的程序之间的映射。出于某种原因,尽管我已通过 assoc 和 ftype 指定了内容,但其他应用程序仍在加载,因此操作系统似乎在检查 assoc 和 ftype 之前就从其他地方读取了其数据(关于要启动哪个应用程序)
我有一个文件扩展名 .vbsc,它与 cscript 相关联,我想将它与其他东西相关联,甚至是 calc.exe。我只是想能够更改关联,但我似乎无法做到。但我可以更改其他扩展名。下面是一个演示。
在演示中,我使用 assoc 和 ftype 为文件扩展名 .ab5 创建关联,演示显示该关联有效。然后我更改关联,以便它调出另一个程序,演示显示该关联有效。然后我用我的问题扩展名尝试它,但它不起作用。这并不是因为我的问题扩展名是 4 个字符长,有很多长扩展名。
下面还有第二个演示,我描述了向下滚动到它的位置。所以它在 ftype 之前读取了其他内容。
C:\Users\user>assoc | grep -i vbsc
.vbsc=VBS_Cscr
C:\Users\user>assoc .ab5=AB5file
.ab5=AB5file
C:\Users\user>ftype AB5file=c:\windows\system32\calc.exe
AB5file=c:\windows\system32\calc.exe
C:\Users\user>echo asdf>a.ab5
C:\Users\user>a.ab5
C:\Users\user>rem the above brings up calculator
C:\Users\user>ftype AB5file=c:\windows\system32\charmap.exe
AB5file=c:\windows\system32\charmap.exe
C:\Users\user>a.ab5
C:\Users\user>rem the above things up charmap
C:\Users\user>abc.vbsc
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
Input Error: There is no script engine for file extension ".vbsc".
C:\Users\user>assoc | find /i "vbs"
.vbs=VBSFile
.vbsc=VBS_Cscr
C:\Users\user>ftype | find /i "vbs"
VBSFile=%SystemRoot%\System32\WScript.exe "%1" %*
VBS_Cscr=c:\windows\system32\calc.exe
C:\Users\user>
在此演示中,我删除了扩展。它仍然与 cscript.exe 关联
删除扩展
C:\Windows\System32>assoc .vbsc=
C:\Windows\System32>ftype VBSFile=
C:\Windows\System32>aaa.vbsc
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
Input Error: There is no script engine for file extension ".vbsc".
C:\Windows\System32>
答案1
似乎与我尝试设置 vbsc 扩展的不同方式有关。
我无法解释它是如何发生的,但我找到了一种解决方法,我会进行探索。
首先,当我研究改变关联时,我查看了“默认程序编辑器”并开始......“更改与特定扩展名关联的文件类型”并制作一个.vbsc 图标并选择一个打开方式的程序,并与 ftype 关联。
当我查看图标时,即使将 ftype 设置为 calc 或 charmap ,图标也不太奇怪,设置为看起来不是 calc 或 charmap 的图标,它是 wscript.exe 或 cscript.exe
毫无疑问,原因是当设置图标与“打开方式”的关联时,它会更改图标,因此稍后对 ftype 的更改不会更改。我不在乎图标,但我想也许存在一些与 cscript 的挥之不去的关联,当我用打开方式更改它时,这些关联可能会发生变化。也许“打开方式”比 ftype 更强大/更有约束力。
我认为“打开方式”也声称它被设置为 calc,但我想可能没有正确设置..将它更改为 charmap,然后嘿,现在在 cmd 中输入文件名打开了 charmap 并且 ftype 也更新了。
我尝试重新触发该问题,但问题没有重新触发,而且 ftype 现在似乎运行正常。但如果再次发生,我会知道创建一个带有该扩展名的图标并使用“打开方式”,让它发挥作用并设置 ftype,这样就应该可以正确建立关联。