获取我使用上下文菜单的路径

Get path where i used the Context Menu

我想在Win10上下文菜单中添加一个选项,它会在我右键单击的文件夹中执行一个批处理文件。我在 "\HKEY_CLASSES_ROOT\Directory\Background\shell" 下的 Regedit 中为此创建了一个密钥和一个子密钥 command。在 command 键下,我添加了命令 cmd /c "start C:\Users\me\Documents\bat\file.bat"。这工作正常,但它只执行 C:\Users\me\Documents\bat\ 中的批处理文件,但我希望它在我右键单击的文件夹中执行批处理文件。想过先把批处理文件复制到我要执行的文件夹下,但是不知道怎么获取路径

要在一个目录中执行你的bat文件,你不必将它复制到那里,你可以改变工作目录。

将注册表命令更改为:

cmd /c "start C:\Users\me\Documents\bat\file.bat %w"

这会将菜单文件夹作为参数传递给您的批处理文件。 在 bat 文件的开头添加目录更改:

cd /d %1

如果您在命令提示符处输入以下内容:

%SystemRoot%\System32\reg.exe Add "HKCU\SOFTWARE\Classes\Directory\Background\shell\Run file.bat\command" /VE /D "%ComSpec% /D /C \"Start \"\" /D \"%V\" \"%UserProfile%\Documents\bat\file.bat\"\"" /F

它应该为您创建一个上下文菜单条目,这应该按照您的要求进行。即创建一个看起来像这样的条目:

C:\WINDOWS\system32\cmd.exe /D /C "Start "" /D "%V" "C:\Users\me\Documents\bat\file.bat""

当您在资源管理器 Window 的背景中右键单击时,您应该会看到一个名为 Run file.bat 的上下文菜单条目,它应该 运行 您的脚本 file.bat,位于您的 \Documents\bat\ 目录中,当前工作目录为您在背景中单击的目录。

完全没有必要对file.bat

的内容进行改动

请注意,由于该文件显然位于您自己的配置文件中,并且因为您真的不应该为系统上的每个用户创建上下文菜单条目,所以我使用 HKEY_CURRENT_USER 作为根键数据。如果您确实需要为所有用户添加条目,并且仍然希望从 cmd.exe 创建它,请确保您的 cmd.exe 实例是 'Run as administrator',然后更改 HKCUHKLM另请注意,您不应直接在 HKEY_CLASSES_ROOT 中添加条目,因为它实际上只是从其他位置映射而来,适当的位置是 HKEY_LOCAL_MACHINE\SOFTWARE\Classes HKEY_CURRENT_USER\SOFTWARE\Classes,如上所述.