我目前正在尝试将一个程序集成到我的 shell 中,有问题的程序是一个 CLI 工具,它有多个传递给它的文件选项。我知道可以在一定程度上在注册表中运行“代码” 。至少看起来与批处理脚本具有相似的语法。%1
如果您想将文件传递给给定程序,则可以使用。有问题的程序解压缩某种文件类型,如果我直接使用命令行,我可以使用以下代码将内容提取到与我提供的 infile 同名的文件夹中:
Decompiler.exe -i %* -o "%~n1"
我不知道通配符的确切术语%~n1
,但我知道它的其他用途,例如%~nx1
( n ame and ex tension of argument 1)。除此之外,如果我在注册表中使用相同的通配符,它会输出到标记为%~n1
. 是否可以在注册表中使用此通配符来获得与在 CLI 中使用时相同的效果,或者是否有等效的替代方法?
的语法
%~n1
称为 变量替换。这由 CMD (
cmd.exe
) 处理,它也运行.bat
文件,但在包含在注册表中时不处理。您应该创建一个
.bat
文件来执行您需要的任何任务,并根据需要包含变量替换,然后从注册表中调用该文件。