Win 8:如何通过右键菜单运行批处理文件?

时间:2015-12-05 15:32:05

标签: windows batch-file windows-8 right-click

我做了一些谷歌搜索,但还没找到我需要的东西。

我设置了.bat文件的默认程序来调用编辑器,所以当我双击.bat文件时,我想编辑它。但是当我右键单击它时,我想选择一个菜单项来运行它。完成此更改后,我右键单击.bat文件并选择"打开",显然默认操作是"编辑",以便再次编辑该文件。

如何右键单击.bat文件以使其运行?它设置一些路径和其他变量并打开一个cmd窗口。 (它是用于闪存驱动器上的Strawberry Perl Portable。)

当我将文件重命名为以.cmd结尾,并右键单击,打开时,文件已运行,但cmd窗口未保持打开状态,立即关闭。带命令的批处理文件行是cmd /K

摘要:我希望右键单击菜单能够运行任何批处理文件,即使默认程序将.bat文件发送给编辑器。

谢谢。我非常感谢你的帮助。这个问题是在24小时前开始的,其中2个是2个坏闪存驱动器(同样是Sandisk型号),此后我在此闪存驱动器上的开发已经停止,尝试了各种修复和重新安装。

1 个答案:

答案 0 :(得分:1)

请阅读Customizing a Shortcut Menu Using Static Verbs

  

或者,您可以通过制作为文件类型定义默认动词   它是Shell子项的默认值。

     

...

     

Shell按以下顺序使用第一个可用动词:

     
      
  1. 默认动词。
  2.   
  3. 如果指定了动词顺序,则注册表中的第一个动词
  4.   
  5. 打开动词
  6.   
  7. 打开动词
  8.         

    如果列出的动词都不可用,则操作失败。

例如,在下一个场景中,.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?)才能使它生效。