双击时 Windows 批处理文件没有运行,如何恢复与 cmd.exe 的关联?

双击时 Windows 批处理文件没有运行,如何恢复与 cmd.exe 的关联?

Windows 8 64 位。我登录的用户具有管理员权限。当我打开 cmd 窗口时,窗口标题甚至显示“管理员:cmd.exe”。

因此,我将 .bat 文件关联设置为在 Notepad++ 中打开 .bat 文件,现在我无法将其重新设置为在双击时运行 bat 文件。我尝试了几个网页,它们告诉我编辑注册表,但无济于事。

当我尝试将 .reg 文件合并到我的 PC 中时,我收到错误“您没有权限”之类的信息。我的用户不是“管理员”,但我的用户“chuck”确实拥有管理员权限。它一直都有。

  1. 我试过此方法,这次 .reg 文件合并没有错误,但是当我双击 .bat 文件时它仍然在 Notepad++ 中打开。我下载了该文件只是为了更改 .bat 文件关联。我必须重新启动电脑吗?

  2. 我还尝试在此处编辑注册表:点击这里. 它也不起作用。

  3. 无法在控制面板中的将文件扩展名与程序关联中更改 .bat 文件扩展名。当我尝试将 cmd.exe 与 .bat 文件关联时,出现错误,如“您无法将该程序与此文件关联。”

  4. 我发现此链接但 FileExts 下没有 .bat 文件条目。此外,在此链接上,我没有要删除的 UserChoice 键HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.b‌​at\UserChoice

  5. 重启 PC 后,问题仍然存在。我将确保 Notepad++ 每次运行时不会恢复与自身的关联。编辑:就 NPP 首选项而言,它不会注册 .bat 文件。

还有其他想法吗?我断断续续已经处理这个问题 3 个月了。

注意:此问题的某些修复程序在 Windows 7 上有效,但在 Windows 8 上无效。


更新:已修复。我不得不

  1. 在我的桌面上创建 regedt32.exe 的快捷方式。
  2. 右键单击快捷方式并执行“以管理员身份运行”,即使我的用户具有管理员权限。
  3. 在整个注册表中搜索字符串“notepad”,我从中发现了这个鬼鬼祟祟的小东西:HKEY_CURRENT_USER\Software\Microsoft\Windows\\**Roaming**\OpenWith\FileExts\\.bat然后删除了该UserChoice项目。
  4. 重新启动 Windows。

答案1

恢复 cmd、bat 和 exe 关联的工作方式与其他文件类型不同。

要恢复这些,请以管理员身份运行 CMD.EXE,然后:

Microsoft Windows [Version 6.0.6003]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

C:\Windows\system32>assoc .bat=exefile
.bat=exefile

C:\Windows\system32>assoc .cmd=exefile
.cmd=exefile

就是这样!

答案2

我在 Windows 10 上遇到了同样的问题。我按照以下步骤解决了它。

  1. 以管理员权限运行 regedit。在 Windows 10 上,打开任何资源管理器窗口(即文件夹),按“Alt-F S A”(不带引号和空格),PowerShell 窗口将打开。输入“regedit”,然后返回。regedit 窗口将打开。
  2. 转到 \HKEY_CURRENT_USER\Software\Microsoft。
  3. 搜索“.bat”,指定整个字段必须相同。在我的计算机上,它恰好位于:\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.bat

  4. 验证是否存在“UserChoice”,它指定编辑器或您指定的任何内容。

  5. 删除‘用户选择’。
  6. 退出 regedit。

现在双击任何.bat 文件它就会运行。

我不需要重新启动运行 Windows 10 的电脑。

答案3

假设您是管理员

您可以从命令行设置关联开始->运行->输入'cmd'(不带引号)并按回车键

然后输入

cmd /c assoc .bat

这将为您提供操作系统的文件类型.bat 文件是/做什么/什么

cmd /c ftype batfile

这将为您提供在“执行”文件时运行的命令 - 假设第一个命令返回“.bat = batfile”,您需要设置关联,然后使用此命令执行此操作

Ftype batfile="%1" %*

相关内容