【发布时间】:2011-02-05 07:39:14
【问题描述】:
我使用 WinXP sp3,并创建了一个 .bat 文件来执行某些操作。 当我双击它时,会打开一个记事本,我可以编辑批处理文件 - 但它没有运行??!?!
我希望当我双击一个 .bat 文件时 - 它应该运行,不是吗? 我该如何解决这个问题?
【问题讨论】:
-
This question 早在 2009 年就迁移到了超级用户,那里有更多信息。
标签: file batch-file
我使用 WinXP sp3,并创建了一个 .bat 文件来执行某些操作。 当我双击它时,会打开一个记事本,我可以编辑批处理文件 - 但它没有运行??!?!
我希望当我双击一个 .bat 文件时 - 它应该运行,不是吗? 我该如何解决这个问题?
【问题讨论】:
标签: file batch-file
检查您的注册表中是否有此键:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\UserChoice
如果有,则表示 .bat 扩展名当前与记事本(或此节点下的“Progid”键定义的另一个程序)相关联。
备份您的注册表并删除此 .bat "UserChoice" 节点。
您的 .bat 文件应该会正常运行。
【讨论】:
我在 Windows 10 上遇到了类似的问题,所有 bat 文件都是用 Notepad++ 打开的。
我解决了这个问题
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.bat 并将 Data 值从 Notepad++_file 更改为 batfile
此解决方案也解决了 Windows 7 上的问题。
【讨论】:
另一个常见的错误是设置了“隐藏已知文件类型的扩展名”,这意味着尽管文件名显示
"----.bat"
真的是这样
“-----.bat.txt”。
你需要进入“文件夹选项-->查看选项”来取消勾选。
【讨论】:
检查assoc 和ftype。默认情况下应该如下所示:
C:\>assoc .bat
.bat=batfile
C:\>ftype batfile
batfile="%1" %*
如果不是,请参阅assoc /? 和ftype /? 如何更改它。
【讨论】:
C:\> 提示符下键入:ASSOC .bat=batfile。在运行此命令之前,键入:assoc .bat 返回.bat=Notepad++_file。运行修复程序后,assoc .bat 返回.bat=batfile。我想我的 .bat 文件现在可以按预期工作了.. :-)
.cmd 文件执行相同的操作。如果assoc .cmd 返回Notepad++_file,您可能还想运行assoc .cmd=batfile。不过,我发现为这两种文件类型更改 ftype 并不重要。当我需要运行 .bat 或 .cmd 文件时,我可以输入带有扩展名的完整文件名。另外,我总是显示文件类型。 注意:在打开 cmd 或 git bash 窗口运行此命令时,可能需要通过 Run as Administrator 执行此操作。
以管理员身份打开控制台并输入:assoc .bat=batfile
【讨论】:
与原始问题相反,我想双击以在编辑器中打开 .cmd 和 .bat 文件。
我用过:
assoc .cmd="C:\Program Files (x86)\Notepad++\notepad++.exe"
ftype cmdfile="C:\Program Files (x86)\Notepad++\notepad++.exe" %1
因此,双击 .cmd 文件会在所选编辑器中打开
【讨论】:
cmd 文件?
几天前我遇到了这个问题,就我而言,我的公司 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 运行它
【讨论】:
尝试右键单击它,将鼠标悬停在“打开方式”上并选择“命令提示符”。
作为批处理文件的开发者,windows默认使用记事本打开.bat。默认情况下,不编写它们的人可能会使用命令行启动文件。
【讨论】:
Run as Administrator 和 Open With 不是选项!我发现@Stephen 解决方案above 可以完美运行! :-)
检查以确保它是属性安全选项卡下的可执行文件。
【讨论】:
这是我的解决方案:
这是要删除的条目:
Hkey_Current_User\Software\Microsoft\Microsoft\Windows\CurrentVersion\Explorer\FileExts.bat
重启后再次检查您的文件关联。它现在应该显示名称 =.bat、描述=Windows 批处理文件、当前默认值=未知应用程序。有了这个关联,你的 bat 文件应该可以正常执行了。
【讨论】:
在我的情况下,没有一个答案有效,因为我有 Notepad ++ 作为文本编辑器,并且 .bat 文件与之关联。因此,如果您使用记事本 ++ 打开它并转到:
配置/首选项/文件关联
并从注册扩展中删除 .bat 条目。
【讨论】:
将以下代码保存为 .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]
【讨论】:
只需拖动并drop文件到命令提示符
【讨论】:
过去两天我一直在苦苦挣扎,我浏览了很多帖子,几乎每个地方都在讲述相同的事情并删除文件
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。重启系统就好了。
【讨论】:
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):
【讨论】:
我明白你的问题了。
您的批处理文件可能未使用 .bat 扩展名保存。
如果您在记事本中编辑批处理文件:试试这个:
转到部分:格式化 (Mac) 或将文件另存为 (Windows)
找到显示格式的下拉框 [在本例中为文本文档 (.txt)]。
单击该框并找到所有文件。单击它进行替换,以便您可以将其保存到批处理文件(或您想要的任何文件扩展名)。
清除文本框并输入 filename.bat。 (将“文件名”替换为您选择的名称。)
对于 Notepad++ 用户:
转到语言部分。
查找批次。
保存文件,应该保存为.bat文件。
希望这个解决了大家的问题!
如果没有,我很确定您的默认文件关联有问题。幸运的是,有办法解决这个问题。
右键单击您的批处理文件,然后单击“属性”。
查找“打开方式”。
寻找可让您更改程序以打开文件的按钮。点击那个。
你很可能在那里找不到 CMD,所以点击浏览,然后你应该登陆 Program Files [或 Program Files (x86/64),取决于你所在的架构]。
退出 Program Files 并找到 Windows\System32。
点击搜索栏并输入“cmd”。
双击CMD,它应该被选为所有.bat文件的默认程序。
下次您想在文本编辑器中编辑文件时,右键单击该文件并选择“使用 Notepad++ 编辑”或“编辑”。
希望这会有所帮助。
【讨论】: