批处理文件无法运行 - 仅打开 Notepad++

批处理文件无法运行 - 仅打开 Notepad++

运行 Windows 8.1。几天前它还能用。真的不知道发生了什么变化,也不知道有什么更新可能会让它停止工作。

当我运行 .bat(批处理)文件(right-click > Opendouble-click)时,批处理文件显示在 Notepad++ 中,但无法运行。如果我加载命令提示符并从命令提示符内部手动运行 .bat 文件,则批处理文件可以完美运行。

我仔细检查了这两篇文章:

如何恢复 .bat 文件与系统的关联(双击时运行)? https://stackoverflow.com/questions/4905708

没有什么不同。具体来说:

从命令提示符:

  • assoc .bat返回.bat=batfile
  • ftype batfile返回batfile="%1" %*

我尝试了所有方法后,电脑重启后没有任何变化。这让我抓狂了...为什么批处理文件不再运行了?

答案1

您要做的第一件事是验证这是否是整个 cmd 圣诞树中的问题,还是仅仅是 .bat 文件的问题。

如果将 .bat 文件重命名为 .cmd,是否可行?如果可行,请比较 .bat 和 .cmd,看看有何不同。

测试不错!我将 .bat 文件重命名为 .cmd,成功了!在命令行中,我输入了 assoc .cmd,结果返回了 .cdm=cmdfile。现在我正在处理并找出 HKEY_CLASSES_ROOT\batfile 和 HKEY_CLASSES_ROOT\cmdfile 之间的区别。

太棒了。现在我们需要修复 .bat 扩展名。您可以查看 .cmd 扩展名的设置方式,并将其也设置为 .bat 扩展名。

我执行了另一个答案,但是现在当我双击 .bat 文件时会打开一个空的命令提示符,但实际的 bat 文件并没有运行。

好的,所以您已经重置了与.bat 文件的关联。

您还应该查看 HKEY_CLASSES_ROOT .bat 和 .cmd 键,并特别检查子文件夹。

我现在只对 [HKEY_CLASSES_ROOT\batfile\shell\Open\command] 做了一处更改。即将值从 @="\"C:\Windows\System32\cmd.exe\" \"%1\"" 更改为 @="\"%1\" %*"。批处理文件现在可以工作了……这很好,但我开始怀疑自己的理智了。我敢发誓我检查过这个,并在循环过程中尝试了完全相同的注册表设置!感觉这里有一些隐藏的 Windows 设置……

不,你基本上在执行另一个答案时重置了密钥,现在它确实解决了问题。这确实解决了。:)

答案2

打开“经典”控制面板:Win + R 键:(Control
按小图标查看)
所有控制面板项 -> 默认程序 -> 将文件类型或协议与程序关联(设置关联):
- 在列表中查找 .BAT -> 更改程序(更多选项)-> 在此电脑上查找其他应用程序
- 选择执行文件目录:\Windows\System32\cmd.exe

相关内容