An alternative approach for your reference:
Save followings as *.reg
and import to registry (adapted from Sully@Wilders Security)
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\My Menu]
"Icon"="shell32.dll,43"
"Subcommands"=""
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu1]
"MUIVerb"="Text Editor"
"SubCommands"=""
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu1\shell\item1]
"MUIVerb"="Notepad++"
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu1\shell\item1\command]
@="C:\\Program Files\\npp\\notepad++.exe %1"
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu1\shell\item2]
"MUIVerb"="Sublime Text"
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu1\shell\item2\command]
@="C:\\Program Files\\Sublime Text 3\\sublime_text.exe %1"
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu2]
"MUIVerb"="Audio"
"SubCommands"=""
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu2\shell\item1]
"MUIVerb"="Audacity"
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu2\shell\item1\command]
@="audacity.exe %1"
References
AskVG
Directory Opus Resource Centre
Addendum: Pseudo-Folder menu
Save as C:\copy.js
function fnCopyHereJ(src, dest) {
var objShell = new ActiveXObject("shell.application");
var objFolder = objShell.NameSpace(dest);
if (objFolder) {
objFolder.CopyHere(src);
} else {
WScript.echo("Invalid Folder: "+dest);
}
}
args = WScript.Arguments;
fnCopyHereJ(args(0), args(1));
Import to registry
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\My Menu]
"Icon"="shell32.dll,43"
"Subcommands"=""
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu1]
"Icon"="imageres.dll,-113"
"MUIVerb"="Picture"
"SubCommands"=""
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu1\shell\item1]
"Icon"="shell32.dll,3"
"MUIVerb"="Folder 1"
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu1\shell\item1\command]
@="wscript C:\\copy.js %1 C:\\Users\\01\\Pictures"
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu1\shell\item2]
"Icon"="shell32.dll,3"
"MUIVerb"="Folder 2"
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu1\shell\item2\command]
@="wscript C:\\copy.js %1 \"C:\\New Folder\""
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu2]
"Icon"="imageres.dll,-108"
"MUIVerb"="Music"
"SubCommands"=""
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu2\shell\item1]
"Icon"="shell32.dll,3"
"MUIVerb"="Folder 1"
[HKEY_CLASSES_ROOT\*\shell\My Menu\shell\menu2\shell\item1\command]
@="wscript C:\\copy.js %1 C:\\Users\\01\\Music"
[HKEY_CLASSES_ROOT\Directory\shell\My Menu]
"Icon"="shell32.dll,43"
"ExtendedSubCommandsKey"="*\\shell\\My Menu"
References
Invoke Windows copy from PowerShell
Folder.CopyHere method (Windows)
Cascading context menus via static registry entries and ExtendedSubCommandsKey
1This is one of those things you never realised you wanted until you find out it's probably not possible. I hope you find an answer! – Michael Frank – 2016-07-14T20:59:55.513
1@Psycogeek - Thank you for your interest in this question. I hope some creative answer will appear. – lit – 2016-07-18T08:11:49.767
1May some savior write a shell extension for you... – guest-vm – 2016-07-20T15:49:42.253