0

在某些文件扩展名上运行 shell 命令时,我只想获取文件名(而不是完整路径)(在它的上下文菜单中)它可能以某种方式在注册表中完成,在 HKCR 下的文件扩展名中。%1 %l %L 中的任何一个都给出了完整路径。我只想要文件名

谢谢


这个想法很好,但我不能让它工作

我创建了文件GetFileName.bat -我把它放在了%path%

它看起来像这样: @set Ret="%~n1"

在注册表中我输入了以下命令

cmd /k GetFileName "%L" & hh.exe -decompile extracted %Ret%

这意味着: * 运行 - GetFileName "%L" * 然后 - hh.exe -decompile 提取 %Ret%

但是%Ret%并没有给我 GetFileName 的结果,尽管它包含具有正确值的环境变量 Ret。

我猜它不允许在注册表中使用这个环境变量,因为它在同一行

4

1 回答 1

0

您可以使用%~n修饰符从脚本参数中的路径中提取文件名,但它似乎无法识别其他环境变量,因此您必须将其填充到单独的批处理文件中:

getext.bat:

@set Ret=%~n1

接着

C:\> getext hello.bat
C:\> echo %Ret%
hello
于 2011-09-29T22:10:49.657 回答