我试图在 Windows 系统上运行以下命令来压缩图像的文件大小,但它返回错误消息:
Invalid Parameter 70
for %f IN (*.png) DO convert -quality 70 "%f" "%f"
我尝试在万维网上搜索解决方案,但一无所获。
命令的语法错误吗?
或
这根本不起作用吗?
我在这里错过了什么?
最佳答案
您必须指定您的convert
命令的完整路径(例如:如果您将convert.exe
安装到C:\myprogs
提供C:\myprogs\convert.exe
在你的 for
循环中)或者 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 shell 运行(更不用说:用户的脚本由于命令含义和语法不同而惨败)
正如在其他评论中看到的那样,我想您混淆了 compact
命令。
compact
命令是一个压缩程序,不太可能有效地打包您的图像。你真的需要 ImageMagik 包。 Irfanview 不是一个命令行工具,但有一个很好的批处理模式,运行良好。
关于用于图像压缩的 Windows 命令返回无效参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38628608/