Vista下修复.bat文件的关联

Posted by Sah in Sah写的 | Tagged , , , , | 1 Comment

今天一上午什么有用的事都没干,光折腾这个事了。被HP OVCM Agent偷偷装了个更新后要求重启,重启之后所有.bat文件就都不能执行了。双击BAT文件只会打开Notepad。

在控制面板里看文件关联,.bat文件确实被关联到了Notepad上。去同事的电脑上看,.bat的文件关联显示的是Unknown application,实际上就是什么都不关联。

试图把指向Notepad的关联关系删除,但是控制面板里只提供了”定义一个新的关联关系”和”在多个已定义的关联关系中切换”的功能,而不能”删除一个已定义的关联关系”。

在网上搜了一圈,又在注册表里翻了一通,找到一些解决方法:把HKEY_CLASSES_ROOT\.bat下的Default值重置为batfile;把HKEY_CLASSES_ROOT\batfile\shell\open\command下的Default值重置为”%1″ %*。

这些修改对我遇到的问题而言都不适用,因为我的注册表里,这两个地方本来就是上面所说的值。

然后给IT Service Desk打电话,对方一声不吭地搜了半天knowledge base,然后告诉我他需要找找资料再答复我。

没办法,只能自己解决了。没想到这回却是山穷水尽疑无路,一枝红杏出墙来。我在注册表里搜索.bat,找到一个很可疑的地方。在与同事的系统对比之后,删除了一个键和两个字符串值,重启系统,问题就解决了。

具体的操作步骤是:

  1. 首先在注册表编辑器里打开如下位置:

    HKEY_USERS\<USERID>\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat

  2. 然后删除OpenWithList和OpenWithProgid以外的所有键
  3. 再打开OpenWithList键,删除Default和MRUList以外的所有值
  4. 检查Default和MRUList两个值,应该分别是空字符串和字符串ba
  5. 打开OpenWithProgid,删除Default和batfile以外的所有值
  6. 检查Default和batfile的值,应该分别是空字符串和空二进制值
  7. 重启之后,控制面板里应该可以看到.bat的关联被重置为Unknown application了,.bat文件也应该可以直接执行了。

One Response to Vista下修复.bat文件的关联

  1. lulu says:

    看不懂什么意思,不过觉得挺牛。比客服都强。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>