【问题标题】:Batch files don't run - they're being opened with notepad [closed]批处理文件不运行-它们正在用记事本打开[关闭]
【发布时间】:2011-02-05 07:39:14
【问题描述】:

我使用 WinXP sp3,并创建了一个 .bat 文件来执行某些操作。 当我双击它时,会打开一个记事本,我可以编辑批处理文件 - 但它没有运行??!?!

我希望当我双击一个 .bat 文件时 - 它应该运行,不是吗? 我该如何解决这个问题?

【问题讨论】:

  • This question 早在 2009 年就迁移到了超级用户,那里有更多信息。

标签: file batch-file


【解决方案1】:

检查您的注册表中是否有此键:

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

如果有,则表示 .bat 扩展名当前与记事本(或此节点下的“Progid”键定义的另一个程序)相关联。

备份您的注册表并删除此 .bat "UserChoice" 节点。

您的 .bat 文件应该会正常运行。

【讨论】:

  • 它们仍然在记事本++中打开
  • 这其实很有趣。通过使批处理文件不再正常工作来破坏您的系统非常容易 - 只需右键单击“打开方式”,“选择默认程序”,然后无论您选择什么,如果您离开“始终使用选定的程序”。 .." 勾选(默认勾选!),一旦你点击“OK”,你就有麻烦了。但是撤消最简单的方法是进入并手动编辑注册表——当然。
  • 谢谢 - 在 Windows 7 上运行良好
  • @Manual Rozier 谢谢它的工作
  • 这对我有用,我猜@MarcinKonradCeglarek。但直到卸载notepad++,所以我想知道卸载是否会自行工作。
【解决方案2】:

我在 Windows 10 上遇到了类似的问题,所有 bat 文件都是用 Notepad++ 打开的。

我解决了这个问题 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.bat 并将 Data 值从 Notepad++_file 更改为 batfile

此解决方案也解决了 Windows 7 上的问题。

【讨论】:

  • 这个对我有用 - 只是希望我也可以更改图标 :)
【解决方案3】:

另一个常见的错误是设置了“隐藏已知文件类型的扩展名”,这意味着尽管文件名显示

"----.bat"

真的是这样

“-----.bat.txt”。

你需要进入“文件夹选项-->查看选项”来取消勾选。

【讨论】:

  • 在图标和列出的类型中仍然很容易看到。我并不特别认为不清除该选项是错误的。
  • 是.bat文件,不是.txt文件
  • 那是我的问题。每次我重新安装 Windows 时都会得到我。
【解决方案4】:

检查assocftype。默认情况下应该如下所示:

C:\>assoc .bat
.bat=batfile

C:\>ftype batfile
batfile="%1" %*

如果不是,请参阅assoc /?ftype /? 如何更改它。

【讨论】:

  • 简单有效,不乱注册表。直到现在才知道 assoc 和 ftype 命令的存在。所以这个答案不仅帮助了我,还教会了我一些新的东西。非常感谢。
  • 所以修复方法是在C:\> 提示符下键入:ASSOC .bat=batfile。在运行此命令之前,键入:assoc .bat 返回.bat=Notepad++_file。运行修复程序后,assoc .bat 返回.bat=batfile。我想我的 .bat 文件现在可以按预期工作了.. :-)
  • 根据superuser.com/a/1273182/659759,您可能希望对.cmd 文件执行相同的操作。如果assoc .cmd 返回Notepad++_file,您可能还想运行assoc .cmd=batfile。不过,我发现为这两种文件类型更改 ftype 并不重要。当我需要运行 .bat.cmd 文件时,我可以输入带有扩展名的完整文件名。另外,我总是显示文件类型。 注意:在打开 cmd 或 git bash 窗口运行此命令时,可能需要通过 Run as Administrator 执行此操作。
【解决方案5】:

以管理员身份打开控制台并输入:assoc .bat=batfile

【讨论】:

    【解决方案6】:

    与原始问题相反,我想双击以在编辑器中打开 .cmd 和 .bat 文件。

    我用过:

    assoc .cmd="C:\Program Files (x86)\Notepad++\notepad++.exe"
    
    ftype cmdfile="C:\Program Files (x86)\Notepad++\notepad++.exe" %1
    

    因此,双击 .cmd 文件会在所选编辑器中打开

    【讨论】:

    • 那么,在这之后......你如何运行(=执行)cmd 文件?
    【解决方案7】:

    几天前我遇到了这个问题,就我而言,我的公司 PC 为每个用户设置了不同的注册表配置。当我尝试启动 regedit、cmd 或 Chrome 时,它​​被 Notepad++ 打开。

    所以我的解决方案是:

    通过 taskmannager 按下控制启动 cmd,然后单击将为您当前登录的用户打开一个 cmd。如果你运行这个命令 "assoc | findstr /i "txtfile" 你会看到 .exe 除了 exefile 还和 txtfile 相关联

    如果您在公司 PC 中,请使用系统管理员用户通过此命令“runas /user:USERADMINOFYOURCORP cmd.exe”记录当前打开的 cmd 并输入密码

    然后启动 regedit 并搜索,以防您是 PC 的管理员

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

    其他

    -HKEY_USERS{您在 PC 中的用户}\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.exe 你会看到它被设置为txtfile。

    所以创建这个名为 exefixer.reg 的文件

    Windows 注册表编辑器 5.00 版

    [-HKEY_USERS{您在 PC 中的用户}\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.exe]

    [-HKEY_USERS{您在 PC 中的用户}\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.exe]

    [-HKEY_USERS{您在 PC 中的用户}\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.exe\OpenWithList]

    [-HKEY_USERS{您在 PC 中的用户}\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.exe\OpenWithProgids] “exefile”=十六进制(0): 从 cmd 运行它

    【讨论】:

      【解决方案8】:

      尝试右键单击它,将鼠标悬停在“打开方式”上并选择“命令提示符”。

      作为批处理文件的开发者,windows默认使用记事本打开.bat。默认情况下,不编写它们的人可能会使用命令行启动文件。

      【讨论】:

      • 此 .bat 文件的上下文菜单中没有 Open With.. 选项
      • 如果文件与 Notepad++ 关联,例如,Run as AdministratorOpen With 不是选项!我发现@Stephen 解决方案above 可以完美运行! :-)
      【解决方案9】:

      检查以确保它是属性安全选项卡下的可执行文件。

      【讨论】:

      • 是的。还是notepad++打开的
      【解决方案10】:

      这是我的解决方案:

      这是要删除的条目:

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

      重启后再次检查您的文件关联。它现在应该显示名称 =.bat、描述=Windows 批处理文件、当前默认值=未知应用程序。有了这个关联,你的 bat 文件应该可以正常执行了。

      【讨论】:

      • 确实删除了条目。 .bat 文件还是被notepad++打开
      • 这对我有用。
      【解决方案11】:

      在我的情况下,没有一个答案有效,因为我有 Notepad ++ 作为文本编辑器,并且 .bat 文件与之关联。因此,如果您使用记事本 ++ 打开它并转到:

      配置/首选项/文件关联

      并从注册扩展中删除 .bat 条目。

      【讨论】:

        【解决方案12】:

        将以下代码保存为 .REG 文件,方法是将以下代码添加到新的文本文档中。
        不要忘记删除 .txt当你保存它时!
        右键单击并合并新的 .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] 
        

        【讨论】:

          【解决方案13】:

          只需拖动drop文件到命令提示符

          【讨论】:

          • 它仍然在notepad++中打开bat文件
          • 这可能收到了很多反对意见,但它在我的公司开发 Win7 机器上对我有用。猜猜这取决于 .bat -> Notepad 拦截是如何完成的。我的可能与最近的 McAffee 安装有关。
          【解决方案14】:

          过去两天我一直在苦苦挣扎,我浏览了很多帖子,几乎每个地方都在讲述相同的事情并删除文件
          HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts.bat\UserChoice,但在我的注册表中我找不到 FileExts,然后我终于找到了解决方案。 点击下面的链接 http://www.sevenforums.com/tutorials/19449-default-file-type-associations-restore.html 选择BAT选项点击bat链接,exe会下载运行下载的exe。重启系统就好了。

          【讨论】:

            【解决方案15】:

            Windows 7 一直在做这些废话。

            最好保留一个方便的 lil .reg 文件来修复它 - 比每次都编辑注册表更容易和简单。

            复制这个 - 粘贴到记事本中 - 给它一个你能记住的文件名,这样你就会知道它的作用和用途,当你把它粘贴到记事本时,确保你没有多余的空格或回车-返回。并不“总是”影响它,但我已经看到它在第二次对人们产生了影响:

            ---------此行以下的所有内容-不包括此行---------

            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]
            
            [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.BAT\OpenWithProgids]
            "batfile"=hex(0):
            

            【讨论】:

              【解决方案16】:

              我明白你的问题了。

              您的批处理文件可能未使用 .bat 扩展名保存。

              如果您在记事本中编辑批处理文件:试试这个:

              转到部分:格式化 (Mac) 或将文件另存为 (Windows)

              找到显示格式的下拉框 [在本例中为文本文档 (.txt)]。

              单击该框并找到所有文件。单击它进行替换,以便您可以将其保存到批处理文件(或您想要的任何文件扩展名)。

              清除文本框并输入 filename.bat。 (将“文件名”替换为您选择的名称。)

              对于 Notepad++ 用户:

              转到语言部分。

              查找批次。

              保存文件,应该保存为.bat文件。

              希望这个解决了大家的问题!

              如果没有,我很确定您的默认文件关联有问题。幸运的是,有办法解决这个问题。

              右键单击您的批处理文件,然后单击“属性”。

              查找“打开方式”。

              寻找可让您更改程序以打开文件的按钮。点击那个。

              你很可能在那里找不到 CMD,所以点击浏览,然后你应该登陆 Program Files [或 Program Files (x86/64),取决于你所在的架构]。

              退出 Program Files 并找到 Windows\System32。

              点击搜索栏并输入“cmd”。

              双击CMD,它应该被选为所有.bat文件的默认程序。

              下次您想在文本编辑器中编辑文件时,右键单击该文件并选择“使用 Notepad++ 编辑”或“编辑”。

              希望这会有所帮助。

              【讨论】:

              • 将其设置为 cmd.exe 对我不起作用 - 单击文件不会导致它们运行
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-04-28
              • 1970-01-01
              相关资源
              最近更新 更多