使用cmd批处理配合image magick批量转换图片格式

文章介绍了如何使用批处理命令和开源工具ImageMagick来批量重命名及转换图片格式,如将jpg转换为png。通过for文件循环和ImageMagick的命令行工具,可以高效地处理多个文件,同时解释了变量扩充在批处理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接重命名?

使用批处理可以批量重命名:

ren *.jpg *.png

但是jpg和png的编码格式是不同的,这样会导致图片无法正确识别。尽管有的查看器能够打开图片,但这也是查看器自动识别了底层二进制的格式。

Image magick 简介

imageMagick是一套功能强大、开源的图片命令行工具,可以用来读写、处理超过89种基本格式的图片文件,对于图片格式转换非常方便,只需要给定文件名即可:

比如把图片 a.jpg 转换成 a.png

magick.exe a.jpg a.png

注意需要把image magick添加到环境变量。

一个例子搞懂for文件循环

for 命令过于强大,参数非常多,但这里只用下面这个命令就能看懂:

for %i in (*.*) do echo %i

在一个有文件的文件夹内执行这条命令,可以看到当前文件夹下所有的文件、文件夹都被echo了出来,就这么简单。do后面跟的是另一个cmd命令,用前面的%i传递变量。(i可以随便起)

批处理循环

使用windows cmd的for命令可以完成循环操作,详见 微软文档

例如把当前文件夹下的 jfif 文件批量转换为jpg

for %i in (*.jfif) do magick "%i" "%~ni.jpg"

上面的 magick "%i" "%~ni.jpg" 是核心部分:

  • magick 调用命令

  • "%i" 表示前面声明的变量 i,这里代表每一个文件的文件名(含扩展名)。用双引号包围是为了防止出现空格。

  • "%~ni.jpg" 为变量扩展, %~n 表示仅保留文件名去除扩展名,这里后面加上.jpg就把扩展名改成了jpg。

变量扩充支持下面的类型:

变量扩充

作用

%~fI

将 %I 扩充到一个完全合格的路径名

%~nI

仅将 %I 扩充到一个文件名

%~xI

仅将 %I 扩充到一个文件扩展名

%~nxI

仅将 %I 扩充到一个文件名和扩展名

%~dpI

仅将 %I 扩充到目录,以\结尾

执行后所有的jfif文件都转成jpg了,保存在当前目录下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值