zoukankan      html  css  js  c++  java
  • Windows7修复bat文件关联记录都是tortoiseSVN惹得祸

    使用TortoiseSVN 提交文件的时候,有一个bat文件,想用记事本打开,选择打开方式,用记事本打开,如图

    以后bat文件 双击直接变成记事本了,网上说的关联修复根本不管作用,因为注册表 batfile和.bat即使删除了
    这个文件关联也不发生变化,说明,文件关联的注册表项目不在HKEY_CLASSES_ROOT 跟下,而是在别的地方。

    怎么知道究竟是哪里的问题呢?
    新建立一个用户,然后测试 test.bat 是否正常,结果:正常。
    注销,切换回原来的用户。

    进入c:\Users\新用户\ 对 NTUSER.DAT 文件执行以下操作 【&RegFile 转换为 reg文件】

    cmd /k reg load HKLM\1_%FileNames% %FileNames% & reg Export HKLM\1_%FileNames% 1_%FileNames%.reg & reg unload HKLM\1_%FileNames% & cmd /k

    对%FileNames% 进行替换即可,因为我是用的是Open++,设置的很方便。

    结果导出一个reg文件:1_NTUSER.DAT.reg

    打开搜索.bat

    [HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat]
    [HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\OpenWithList]
    [HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\OpenWithProgids]
    "batfile"=hex(0):
    
    [HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt]
    [HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithList]
    "a"="notepad++.exe"
    "MRUList"="a"
    [HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithProgids]
    "Notepad++_file"=hex(0):


    看到没,这就是用户的文件管理 注册表地址。而非前面的在HKEY_CLASSES_ROOT,在HKEY_CLASSES_ROOT是系统全局的注册表项
    用户的就被加载到了其他的地方。而这里的注册表才是管用,所以换了用户,注册表项被重新从 NTUSER.DAT 加载到注册表,结果就不一样了。

    好了,知道了问题在哪里,进入自己的注册表的这个位置,将这个注册表项 删除或修改成上面的样子,然后 确认 系统注册表ROOT下的文件关联是正确的:

    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\.bat]
    @="batfile"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell\open\command]
    @="\"%1\" %*"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell\edit\command]
    @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
    00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\
    54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\
    00

    这样,bat文件就恢复了关联。

    顺便把 有问题的bat贴上来:

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat]
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\OpenWithList]
    "a"="NOTEPAD.EXE"
    "MRUList"="cab"
    "b"="DEPENDS 1.0.EXE"
    "c"="WinRAR.exe"
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\OpenWithProgids]
    "batfile"=hex(0):
    "cmdfile"=hex(0):
    "bat_auto_file"=hex(0):
    
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\UserChoice]
    "Progid"="Applications\\cmd.exe"

    上面的可是有问题的哦   userChoice变成了cmd 怪不得 一直打开都不是bat,而是程序

  • 相关阅读:
    javascript和jquery如何判断元素是否存在最佳。
    Sping中Bean配置的深入探讨
    Spring基于 Annotation 的简单介绍
    Sping中的配置Bean详解
    Sping框架概述
    Hibernate中的HQL语言
    Hibernate的检索策略和优化
    Hibernate表关系映射之多对多映射
    Hibernate表关系映射之一对多映射
    Hibernate表关系映射之一对一映射
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2745814.html
Copyright © 2011-2022 走看看