我在注册表中创建了一个自定义命令条目,以便在用户右键单击文件夹时将项目添加到 Windows 资源管理器上下文菜单中。这正是注册表中的值:
"C:\Program Files\Directory Switcher\DirectorySwitcher.exe" "%V" "2021.0"
%V
返回当前目录。如果目录路径中有任何名称中带有空格的文件夹,则会导致路径拆分为其他命令行参数。为了解决这个问题,微软告诉你在它周围加上引号"%V"
。
具体问题是,当 %V 位于驱动器根目录时,C:\ 中的反斜杠会转义结束引号并导致其余命令行参数解析不正确。例如,在 C:\ 我得到一个参数C:" 2021.0
,而不是预期的两个C:\
and 2021.0
。
如何正确封装 %V 以便它适用于以反斜杠结尾的普通文件夹路径和驱动器根?另一种方法是更改我的程序以查找这种边缘情况,但我宁愿了解如何更正我的 shell 动词。
(有关 %V 的信息可以在这个 SuperUser question中找到)