无法正确转义此复杂命令,因此它将从注册表中正确运行

无法正确转义此复杂命令,因此它将从注册表中正确运行

我正在为所有文件创建一个新的右键单击上下文菜单项。它位于此处:

HKEY_CLASSES_ROOT\*\shell\FileUtilities\shell\a_addtofolder

它基本上只是将选定的文件添加到新文件夹中。我知道这个功能很简陋,但这是一个学习经验。

该脚本使用 Powershell、singleinstance.exe (https://github.com/zenden2k/context-menu-launcher) 和 run-hidden.exe (https://github.com/stax76/run-hidden),所以这将是一个很长的命令。:)

现在,这个命令有效:

"C:\Tools\scripts\singleinstance.exe" "%1" "powershell.exe" -file "C:\Tools\scripts\AddSelectionToFolderSI.ps1" $files --si-timeout 250

这是我需要的,但它不起作用:

"C:\Tools\scripts\PATH\run-hidden.exe" "C:\Tools\scripts\singleinstance.exe" "%1" "powershell.exe" -file "C:\Tools\scripts\AddSelectionToFolderSI.ps1" $files --si-timeout 250

从逻辑上讲,这就是我想要发生的事情:

隐藏运行程序>单实例“%1” >执行程序-文件“C:\Tools\scripts\AddSelectionToFolderSI.ps1”$文件> --si-timeout 250

--si-timeout 250 是与 singleinstance.exe 关联的参数。它是一个短计时器,允许将多个文件传递给 PowerShell(有点像从 SendTo 菜单调用脚本)

我尝试过很多不同的单引号和双引号组合,但还是迷路了。

如果有人能帮忙,那将是天赐之物。

非常感谢。

答案1

答案是将run-hidden.exe调用放在调用内部 singleinstance.exe,就像这样:

C:\Tools\scripts\singleinstance.exe "%1" "C:\Tools\scripts\PATH\run-hidden.exe" powershell.exe -file C:\Tools\scripts\AddSelectionToFolderSI.ps1 $files --si-timeout 250

相关内容