如何在Windows中获取文件名?

时间:2017-03-05 11:52:07

标签: windows batch-file

程序ImageMagick有一个convert命令,可用于转换图片格式。例如,我有一张图片test.jpg

convert test.jpg test.png

将给出test.png。

我想将此命令添加到右键单击菜单以简化我的工作。我在regedit

HKEY_CLASSES_ROOT -- * -- shell添加了一个项目
C:\Program Files\ImageMagick-7.0.3-Q16\convert.exe -density 600 "%1" %1.png

当我将此命令运行到文件test.jpg时,它将提供test.jpg.png。我想获取文件test.png。我该如何修改命令行?

2 个答案:

答案 0 :(得分:0)

我不确定shell处理程序是否直接支持这个,但我会使用具有所需功能的cmd来处理它:

cmd /d /c "for /f "delims=" %%i in ('@echo %1') do @start "" "C:\Program Files\ImageMagick-7.0.3-Q16\convert.exe" -density 600 "%1" "%%~dpni.png""
  • @echo %1回应shell提供的完整路径,使其可用于CMD作为可处理的结果。表达式是单引号,因为这是使它成为命令的原因。
  • for /f将结果解析为字符串列表(包含一个字符串),将每个(一个)字符串放入%i并允许%~dpni takes drive letter, path and name(但是%i
  • @start用于不让CMD等待程序完成。 start之后的空引号为very required

答案 1 :(得分:0)

你的方法很好。虽然您需要稍微改变语法:

C:\Program Files\ImageMagick-7.0.3-Q16\convert.exe -density 600 "%1" %1.png

C:\Program Files\ImageMagick-7.0.3-Q16\convert.exe -density 600 "%1" "%~n1.png"

我希望这能解决你的问题。但是,如果不是 - 您可以制作包含此命令的批处理文件(第二个,由我修改)并将其保存在PC中的某个位置(说" C:\ MyScript.Bat"

并且,尝试将注册表中的密钥设为:

C:\MyScript.bat "%1"

并且,这是灵活的方式。 注意:批处理中的代码如下:

"C:\Program Files\ImageMagick-7.0.3-Q16\convert.exe" -density 600 "%1" "%~n1.png"

您想在右键单击上下文菜单中进行任何更改,您可以应用更改批处理文件

希望我帮忙!