windows - 如何在windows中获取文件名?

标签 windows batch-file

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

convert test.jpg test.png

会给出test.png。

我想将此命令添加到右键菜单中以简化我的工作。我在 HKEY_CLASSES_ROOT -- * -- shell

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

当我对文件 test.jpg 运行此命令时,它会给出 test.jpg.png。我想获取文件 test.png。我应该如何修改命令行?

最佳答案

我不确定 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 并允许 % ~dpnitakes drive letter, path and name (但不是扩展名)在 %i 之外。
  • @start 用于不让 CMD 等待程序完成。 start 后的空引号是 very required .

关于windows - 如何在windows中获取文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42608051/

相关文章:

windows - 从子文件夹调用批处理文件时如何获取当前目录名称?

batch-file - 在批处理 : Read only the filename from a variable with path and filename

windows - 如何使用 winrar 提取与 zip 文件同名的文件夹中的所有 zip 文件?

windows - 批处理文件在我的桌面上运行良好,但在虚拟桌面上运行不正常。为什么?

C# 异常包含事件详细信息

windows - KOHA ILS(集成图书馆系统)在 Windows 7 64 位中的安装

windows - 将linux的剪贴板复制到网络中的windows剪贴板

Windows Bat - 系统找不到指定的文件

c++ - 如何在 C++ 中使用自定义形状的光标检测图像上的鼠标单击位置

windows - Windows 上未显示 Qt5 快速应用程序窗口