我想在 Windows 7 中制作一个右键单击上下文菜单选项,该选项对上下文敏感,并且可以将特定文件/文件夹的名称传递给 shell 脚本。
我知道这一定是可能的 - 例如如果你有一个 7zip 文件,你可以右键单击它,然后说“在此处提取”,然后目标(.7z 档案)就会以某种方式传递给 7zip 程序。
具体来说,我有一个脚本,它接受一个 .c 文件并将其填充到 LaTeX 列表中,然后运行 pdflatex 以生成格式良好的文件以供读取。但是,我必须将文件指定为命令行参数。我想要做的是,这样我就可以右键单击文件并自动运行此脚本,将右键单击目标的路径自动传递到命令行参数中。
答案1
欢迎来到超级用户!
这将需要注册表编辑才能完成,并且取决于您是否要为所有文件、仅为特定扩展名的文件、文件夹或两者添加此项。
打开注册表编辑器并导航到HKEY_CLASSES_ROOT
。您将在这里看到一堆文件扩展名 - 这是控制上下文菜单的内容。
无论将该菜单项附加到什么,添加处理程序的过程都是相同的,重要的是将其放在注册表中的什么位置。
流程如下:
shell
在您要添加的事物的键下创建一个新键。- 如果您希望此菜单项有一个图标,请添加一个名为
Icon
您刚刚创建的键的字符串,并以图标的路径作为值。 - 添加密钥在下面您创建的项目名为
command
- 修改此项下的(默认)条目以指向您要打开的脚本,并在
"%1"
传递给程序的文件名应在其命令行中的位置添加。
至于这个新菜单项应该放在哪里?如果您想让它显示...
- 对于某个扩展名的所有文件,将其放在匹配的扩展名键下(如果不存在,可以创建一个)。
- 对于所有地方的所有文件,将其放在
*
键下 - 对于所有目录,将其放在
Directory
键下。