如何修复扩展程序关联程序的目录

如何修复扩展程序关联程序的目录

在我的 Windows-10 PC 上,有一些文件扩展名是.dmupgrade。这些文件应该用程序打开C:\Program Files\<Company>\TaskbarUtility.exe

我的电脑上还有另一个版本TaskbarUtility.exe,位于目录中C:\<Company>\Tools\TaskbarUtility\

由于未知原因,双击.dmupgrade文件时,程序C:\<Company>\Tools\TaskbarUtility\TaskbarUtility.exe会打开,因此我尝试更改此设置:右键单击文件*.dmupgrade,按下Change按钮Opens with,选择文件C:\Program Files\<Company>\TaskbarUtility.exe并按下Ok
双击时,似乎程序C:\<Company>\Tools\TaskbarUtility.exe再次用于打开文件。

我一直在查看注册表,位于以下位置:

 Computer\
   HKEY_CURRENT_USER\
     Software\
       Microsoft\
         Windows\
           CurrentVersion\
             Explorer\
               FileExts\
                .dmupgrade\
                  OpenWithList

这仅给出TaskbarUtility.exe答案(没有任何目录引用)。密钥HKEY_CLASSES_ROOT\.dmupgrade存在但未填写。

我检查了PATH环境变量,显然该目录C:\<Company>\Tools不存在。

我已经检查过C:\Program Files\<Company>\Tools\TaskbarUtility.exe(使用 Ubuntu 模拟器应用程序),它不是指向其他程序的链接:

Prompt>file TaskbarUtility.exe
TaskbarUtility.exe: PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows

所以我的问题是:当我配置要使用特定程序打开的文件扩展名时,Windows 如何知道在哪个目录中查找该程序?是否可以使用WMIC命令来处理这个问题?

提前致谢

答案1

尽管一些人们羞辱assocftype无用在这个相关的问答
上述问题正是相反的证据。

assoc都是ftypecmd.exe 的内部命令

assoc /?
assoc.com /? 
assoc.exe /?
help assoc

将返回相同的帮助文本:

Displays or modifies file extension associations

ASSOC [.ext[=[fileType]]]

 .ext      Specifies the file extension to associate the file type with
 fileType  Specifies the file type to associate with the file extension

Type ASSOC without parameters to display the current file associations.
If ASSOC is invoked with just a file extension, it displays the current
file association for that file extension.  Specify nothing for the file
type and the command will delete the association for the file extension.

但是没有文件存在(因此这在 PowerShell 中不起作用)同样适用于 ftype。

查找与扩展名(此处为 .txt)关联的文件类型:

> assoc .txt
.txt=txtfile

查找要执行的命令打开此文件类型用于:

> ftype txtfile
txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1

对于他人动词你必须通过注册表采取路线

> Reg query "HKCR\txtfile" /S
HKEY_CLASSES_ROOT\txtfile
    (Default)    REG_SZ    Text Document
    EditFlags    REG_DWORD    0x210000
    FriendlyTypeName    REG_EXPAND_SZ    @%SystemRoot%\system32\notepad.exe,-469

HKEY_CLASSES_ROOT\txtfile\DefaultIcon
    (Default)    REG_EXPAND_SZ    %SystemRoot%\system32\imageres.dll,-102

HKEY_CLASSES_ROOT\txtfile\shell

HKEY_CLASSES_ROOT\txtfile\shell\open

HKEY_CLASSES_ROOT\txtfile\shell\open\command
    (Default)    REG_EXPAND_SZ    %SystemRoot%\system32\NOTEPAD.EXE %1

HKEY_CLASSES_ROOT\txtfile\shell\print

HKEY_CLASSES_ROOT\txtfile\shell\print\command
    (Default)    REG_EXPAND_SZ    %SystemRoot%\system32\NOTEPAD.EXE /p %1

HKEY_CLASSES_ROOT\txtfile\shell\printto

HKEY_CLASSES_ROOT\txtfile\shell\printto\command
    (Default)    REG_EXPAND_SZ    %SystemRoot%\system32\notepad.exe /pt "%1" "%2" "%3" "%4"

编辑:适用于原始问题:
assoc以下是之前 的结果ftype

Prompt>assoc .dmupgrade
.dmupgrade=dmupgrade

Prompt>ftype dmupgrade
dmupgrade=C:\<Company>\Tools\TaskbarUtility\TaskbarUtility.exe "%l"

以下命令已启动:

Prompt>ftype dmupgrade=C:\Program Files\<Company>\TaskbarUtility.exe "%1"

这首先失败了,因为我需要以管理员身份执行此操作:-),但打开管理员提示符后,我的问题就解决了。

相关内容