用于图像压缩的Windows命令返回无效的参数错误

我试图运行下面的命令来压缩Windows系统上的图像的文件大小,它会返回错误消息:

无效的参数70

for %f IN (*.png) DO convert -quality 70 "%f" "%f" 

我试图在万维网寻找解决scheme,但找不到任何东西。

命令的语法是错误的?

要么

这不是工作吗?

我在这里错过了什么?

你必须指定你的convert命令的完整路径(例如:如果你安装convert.exeC:\myprogsfor循环中提供C:\myprogs\convert.exe ),否则DOS将使用内置的convert命令,这是完全不同的(NTFS / FAT卷转换)

在我的机器上(我还没有安装任何convert程序):

 C:\Users\xxxx>where convert C:\Windows\System32\convert.exe 

内置的windows命令总是在PATH中首先出现。

稍微脱离主题来解释类似的问题:当人们尝试调用MSYS findsort或Windows命令行中类似的通用命名命令。 其他命令,如sedgrep工作正常,因为它们不存在于MS-DOS,但Windows findsort存在和先来,除非从MSYS2壳运行(更不用说:用户的脚本悲惨地失败,因为命令的含义&语法是不同的)

正如其他评论中所见,我想你正在compact命令混合。 compact命令是一个压缩程序,非常不可能有效地打包您的图像。 你真的需要ImageMagik包。 Irfanview不是一个命令行工具,但有一个很好的批处理模式,运行良好。