【问题标题】:(Windows 8.1) Get path of selected folder from custom context menu option(Windows 8.1) 从自定义上下文菜单选项中获取所选文件夹的路径
【发布时间】:2015-03-25 22:34:19
【问题描述】:

首先,我对批处理语言几乎一无所知。我正在处理一个写入注册表的批处理文件,以便添加一个上下文菜单选项,从调用上下文菜单选项的文件夹中删除“desktop.ini”。到目前为止,我得到的是:

@echo off

@reg add "HKEY_CLASSES_ROOT\Folder\shell\resetFolderSettings"         /t REG_SZ /v "" /d "Reset folder settings"   /f
rem @reg add "HKEY_CLASSES_ROOT\Folder\shell\resetFolderSettings\command" /t REG_SZ /v "" /d "del /A s h \"%cd%\desktop.ini\" && pause" /f
@reg add "HKEY_CLASSES_ROOT\Folder\shell\resetFolderSettings\command" /t REG_SZ /v "" /d "cmd.exe /c echo \"%~dp0\desktop.ini\" && pause" /f

pause

这不起作用,因为写入注册表的是调用安装 .bat 的静态文件夹路径。我很难找到解决这个问题的方法,所以我最终决定我别无选择,只能在这里寻求帮助。

【问题讨论】:

标签: windows batch-file command registry contextmenu


【解决方案1】:

使用%V 表示调用上下文菜单选项的文件夹。

因此,您应该在

中使用的参数
reg add "HKCR\Folder\shell\resetFolderSettings\command" ...

可能是来自批处理脚本(请参阅%V 应该转义为%%V):

 ... /t REG_SZ /v "" /d "%comspec% /c echo \"%%V\desktop.ini\"&&pause" /F

或直接来自cmd窗口 - % 符号在这里没有转义:

 ... /t REG_SZ /v "" /d "%comspec% /c echo \"%V\desktop.ini\"&&pause" /F

编辑。使%comspec% 也可扩展(并且使用可操作的del /A 命令而不是echo):

 ... /t REG_EXPAND_SZ /ve /d ^%comspec^%" /c del /A \"%V\desktop.ini\"&pause" /F

直接从cmd 窗口使用。请参阅上面的转义 % 为 ^%(但只有那些命令行的双引号部分)。

使用批处理脚本中的另一个转义方案:将所有% 转义为%% 在%%comspec%% 和%%V 中的显示方式如下:

 ... /t REG_EXPAND_SZ /ve /d "%%comspec%% /c del /A \"%%V\desktop.ini\"&pause" /F

结果:

==> reg query "HKCR\Folder\shell\resetFolderSettings\command" /ve

HKEY_CLASSES_ROOT\Folder\shell\resetFolderSettings\command
    (Default)    REG_EXPAND_SZ    %comspec% /c del /A "%V\desktop.ini"&pause

【讨论】:

  • 你可以用/ve代替/v ""
  • 我从中得到的输出始终是 "V\desktop.ini"。我尝试了“V”和“v”,但都没有奏效。我试过的命令是:@reg add "HKEY_CLASSES_ROOT\Folder\shell\resetFolderSettings\command" /t REG_SZ /v "" /d "%comspec% /c echo \"%V\desktop.ini\" && pause" /f
  • 通过添加第二个 % 符号 (%%v) 修复。谢谢。
  • @JesúsCruz 抱歉,我忘记你是从批处理脚本运行它;仅从命令行尝试...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2010-11-22
  • 2014-05-29
相关资源
最近更新 更多