获取我使用上下文菜单的路径
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',然后更改 HKCU
到 HKLM
。 另请注意,您不应直接在 HKEY_CLASSES_ROOT 中添加条目,因为它实际上只是从其他位置映射而来,适当的位置是 HKEY_LOCAL_MACHINE\SOFTWARE\Classes HKEY_CURRENT_USER\SOFTWARE\Classes,如上所述.
我想在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',然后更改 HKCU
到 HKLM
。 另请注意,您不应直接在 HKEY_CLASSES_ROOT 中添加条目,因为它实际上只是从其他位置映射而来,适当的位置是 HKEY_LOCAL_MACHINE\SOFTWARE\Classes HKEY_CURRENT_USER\SOFTWARE\Classes,如上所述.