我试图运行下面的命令来压缩Windows系统上的图像的文件大小,它会返回错误消息:
无效的参数70
for %f IN (*.png) DO convert -quality 70 "%f" "%f"
我试图在万维网寻找解决scheme,但找不到任何东西。
命令的语法是错误的?
要么
这不是工作吗?
我在这里错过了什么?
你必须指定你的convert
命令的完整路径(例如:如果你安装convert.exe
到C:\myprogs
在for
循环中提供C:\myprogs\convert.exe
),否则DOS将使用内置的convert
命令,这是完全不同的(NTFS / FAT卷转换)
在我的机器上(我还没有安装任何convert
程序):
C:\Users\xxxx>where convert C:\Windows\System32\convert.exe
内置的windows命令总是在PATH中首先出现。
稍微脱离主题来解释类似的问题:当人们尝试调用MSYS find
或sort
或Windows命令行中类似的通用命名命令。 其他命令,如sed
或grep
工作正常,因为它们不存在于MS-DOS,但Windows find
或sort
存在和先来,除非从MSYS2壳运行(更不用说:用户的脚本悲惨地失败,因为命令的含义&语法是不同的)
正如其他评论中所见,我想你正在compact
命令混合。 compact
命令是一个压缩程序,非常不可能有效地打包您的图像。 你真的需要ImageMagik包。 Irfanview不是一个命令行工具,但有一个很好的批处理模式,运行良好。