在shell命令中只接收文件名

时间:2011-09-29 21:56:24

标签: shell contextmenu regedit

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

感谢


这个想法很好,但我不能让它发挥作用

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

的某个地方

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

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

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

表示: *运行this- GetFileName“%L” *然后-hh.exe -decompile提取%Ret%

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

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

1 个答案:

答案 0 :(得分:0)

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

getext.bat:

@set Ret=%~n1

然后

C:\> getext hello.bat
C:\> echo %Ret%
hello