【问题标题】:Reassociate Batch Files with Cmd.exe使用 Cmd.exe 重新关联批处理文件
【发布时间】:2012-03-01 17:09:45
【问题描述】:

我在 windows vista 上安装了 gvim,并且很高兴能用它编辑所有内容。我将 .bat 文件与 gvim 相关联,现在我无法运行 bat 文件...哎呀!谁能解释如何将 .bat 文件与 cmd.exe 重新关联,以便双击它们会使它们运行?

编辑: 我按照 Jim 的建议删除了注册表项。重启后 bat 文件仍在我的文本编辑器中打开。我仔细检查了我的注册表,并重新创建了密钥。然后我发现文本编辑器是在控制面板>默认程序>关联文件类型中设置的。我将 bat 文件更改为使用 Cmd.exe 打开,但 Cmd.exe 只是打开而不运行批处理文件。我猜问题仍然在注册表中。

【问题讨论】:

    标签: batch-file windows-vista


    【解决方案1】:

    这包含所有默认文件扩展名的 reg 文件下载。只需下载 bat 并运行它,这应该会将所有关联恢复为默认值。

    http://www.sevenforums.com/tutorials/19449-default-file-type-associations-restore.html

    注意:虽然它说它只适用于 Win7,但它应该也适用于 vista。

    Default_BAT.reg 复制以防链接失效:

    Windows Registry Editor Version 5.00
    
    ; Created by: Shawn Brink
    ; http://www.sevenforums.com
    ; Tutorial: http://www.sevenforums.com/tutorials/19449-default-file-type-associations-restore.html
    
    
    [-HKEY_CLASSES_ROOT\.bat]
    
    [HKEY_CLASSES_ROOT\.bat]
    @="batfile"
    
    [HKEY_CLASSES_ROOT\.bat\PersistentHandler]
    @="{5e941d80-bf96-11cd-b579-08002b30bfeb}"
    
    [HKEY_CLASSES_ROOT\batfile]
    @="Windows Batch File"
    "EditFlags"=hex:30,04,00,00
    "FriendlyTypeName"=hex(2):40,00,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,61,00,63,00,70,00,70,00,61,00,67,00,65,00,2e,00,64,00,6c,00,6c,\
      00,2c,00,2d,00,36,00,30,00,30,00,32,00,00,00
    
    [HKEY_CLASSES_ROOT\batfile\DefaultIcon]
    @=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,69,00,6d,00,\
      61,00,67,00,65,00,72,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,36,\
      00,38,00,00,00
    
    [HKEY_CLASSES_ROOT\batfile\shell]
    @=""
    
    [HKEY_CLASSES_ROOT\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
    
    [HKEY_CLASSES_ROOT\batfile\shell\open]
    "EditFlags"=hex:00,00,00,00
    
    [HKEY_CLASSES_ROOT\batfile\shell\open\command]
    @="\"%1\" %*"
    
    [HKEY_CLASSES_ROOT\batfile\shell\print]
    
    [HKEY_CLASSES_ROOT\batfile\shell\print\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,2f,00,70,00,20,\
      00,25,00,31,00,00,00
    
    [HKEY_CLASSES_ROOT\batfile\shell\runas]
    "HasLUAShield"=""
    
    [HKEY_CLASSES_ROOT\batfile\shell\runas\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,63,00,6d,00,\
      64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,43,00,20,00,22,00,25,00,31,00,22,\
      00,20,00,25,00,2a,00,00,00
    
    [HKEY_CLASSES_ROOT\batfile\shell\runasuser]
    @="@shell32.dll,-50944"
    "Extended"=""
    "SuppressionPolicyEx"="{F211AA05-D4DF-4370-A2A0-9F19C09756A7}"
    
    [HKEY_CLASSES_ROOT\batfile\shell\runasuser\command]
    "DelegateExecute"="{ea72d00e-4960-42fa-ba92-7792a7944c1d}"
    
    [HKEY_CLASSES_ROOT\batfile\ShellEx]
    
    [HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers]
    @="Compatibility"
    
    [HKEY_CLASSES_ROOT\batfile\ShellEx\ContextMenuHandlers\Compatibility]
    @="{1d27f844-3a1f-4410-85ac-14651078412d}"
    
    [HKEY_CLASSES_ROOT\batfile\ShellEx\DropHandler]
    @="{86C86720-42A0-1069-A2E8-08002B30309D}"
    
    [-HKEY_CLASSES_ROOT\SystemFileAssociations\.bat]
    
    [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat]
    

    【讨论】:

    • 工作就像一个魅力!谢谢,巴厘岛 C
    • 我和 GitNinja 有同样的问题,但是使用了不同的文本编辑器。我通常更喜欢对这些步骤的解释,而不是指向另一个站点的链接,但我查看了 Sevenforums.com 上的 reg 文件,并意识到这需要对注册表的结构进行很长的解释才能做到这一点。我查看了自己的注册表以查找差异,然后运行它。它在 Win8.1Pro 上完美地解决了我的问题。
    • 根据this answer,只需要最后一行。
    • +1,这实际上解决了问题,这与仅更改 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.BAT\UserChoice 的常见建议不同
    【解决方案2】:

    使用 regedit.exe,查找密钥

    .bat 
    

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

    并删除它。

    编辑: 还有这个

    Windows 注册表编辑器 5.00 版

    [HKEY_CLASSES_ROOT.bat] @="batfile"

    [HKEY_CLASSES_ROOT.bat\PersistentHandler] @="{5e941d80-bf96-11cd-b579-08002b30bfeb}"

    [HKEY_CLASSES_ROOT\batfile\shell\open\command] @="\"%1\" %*"

    来自http://social.technet.microsoft.com/Forums/en/w7itprogeneral/thread/fc2ca91d-5509-4c9b-92a5-5af19375e361

    我自己不再有这个问题,但无论如何都查看了上面的内容:)!

    【讨论】:

    • 谢谢,吉姆!我找到了这个密钥,但它仍在我的文本编辑器中打开。也许我只需要重新启动。
    • 还是不行。我已经用更多信息编辑了这个问题。
    【解决方案3】:

    合并.reg 文件或editing the registry manually 是最可靠的选项,但也许您可以简单地从管理员命令提示符运行assoc .bat=

    如果两者都不起作用,则可能是 Windows 正在向您隐藏文件扩展名,它实际上是一个 .bat.txt 文件。在文件资源管理器选项(以前称为文件夹选项)中取消选中“隐藏已知文件类型的扩展名”并重命名文件。

    【讨论】:

    • assoc .bat= 非常适合我(在 Windows 10 上)。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    相关资源
    最近更新 更多