我做了一些谷歌搜索,但还没找到我需要的东西。
我设置了.bat文件的默认程序来调用编辑器,所以当我双击.bat文件时,我想编辑它。但是当我右键单击它时,我想选择一个菜单项来运行它。完成此更改后,我右键单击.bat文件并选择"打开",显然默认操作是"编辑",以便再次编辑该文件。
如何右键单击.bat文件以使其运行?它设置一些路径和其他变量并打开一个cmd窗口。 (它是用于闪存驱动器上的Strawberry Perl Portable。)
当我将文件重命名为以.cmd结尾,并右键单击,打开时,文件已运行,但cmd窗口未保持打开状态,立即关闭。带命令的批处理文件行是cmd /K
。
摘要:我希望右键单击菜单能够运行任何批处理文件,即使默认程序将.bat文件发送给编辑器。
谢谢。我非常感谢你的帮助。这个问题是在24小时前开始的,其中2个是2个坏闪存驱动器(同样是Sandisk型号),此后我在此闪存驱动器上的开发已经停止,尝试了各种修复和重新安装。
答案 0 :(得分:1)
请阅读Customizing a Shortcut Menu Using Static Verbs:
或者,您可以通过制作为文件类型定义默认动词 它是
Shell
子项的默认值。...
Shell按以下顺序使用第一个可用动词:
- 默认动词。
- 如果指定了动词顺序,则注册表中的第一个动词
- 打开动词
- 打开动词
醇>如果列出的动词都不可用,则操作失败。
例如,在下一个场景中,.bat
文件类型的默认动词为打开:
==> assoc .bat
.bat=batfile
==> ftype batfile
batfile="%1" %*
==> reg query HKEY_CLASSES_ROOT\batfile\shell /s
HKEY_CLASSES_ROOT\batfile\shell
(Default) REG_SZ (value not set)
HKEY_CLASSES_ROOT\batfile\shell\edit
HKEY_CLASSES_ROOT\batfile\shell\edit\command
(Default) REG_EXPAND_SZ %SystemRoot%\System32\NOTEPAD.EXE %1
HKEY_CLASSES_ROOT\batfile\shell\open
EditFlags REG_BINARY 00000000
HKEY_CLASSES_ROOT\batfile\shell\open\command
(Default) REG_SZ "%1" %*
HKEY_CLASSES_ROOT\batfile\shell\print
HKEY_CLASSES_ROOT\batfile\shell\print\command
(Default) REG_EXPAND_SZ %SystemRoot%\System32\NOTEPAD.EXE /p %1
HKEY_CLASSES_ROOT\batfile\shell\runas
HasLUAShield REG_SZ
HKEY_CLASSES_ROOT\batfile\shell\runas\command
(Default) REG_EXPAND_SZ %SystemRoot%\System32\cmd.exe /C "%1" %*
HKEY_CLASSES_ROOT\batfile\shell\runasuser
(Default) REG_SZ @shell32.dll,-50944
SuppressionPolicyEx REG_SZ {F211AA05-D4DF-4370-A2A0-9F19C09756A7}
Extended REG_SZ
HKEY_CLASSES_ROOT\batfile\shell\runasuser\command
DelegateExecute REG_SZ {ea72d00e-4960-42fa-ba92-7792a7944c1d}
如果仅更改 shell
子键默认值 ,则.bat
文件类型的默认动词将变为修改:
==> reg query HKEY_CLASSES_ROOT\batfile\shell /ve
HKEY_CLASSES_ROOT\batfile\shell
(Default) REG_SZ edit
此更改不会影响文件资源管理器的当前实例;你需要重启文件资源管理器(甚至是Shell?)才能使它生效。