批处理文件调用cwebp.exe处理含空格文件名时失败的问题求助
批处理文件调用cwebp.exe处理含空格文件名时失败的问题求助
问题分析
出现这个问题的核心原因是:带空格的文件名在批处理环境中会被默认拆分成多个独立参数。比如你处理Logo Black.png时,%1会被拆成Logo和Black.png两部分,cwebp错误地将后半段Black.png当成了输入文件,进而尝试打开不存在的Black.webp,最终抛出找不到文件的报错。
解决方案
只需要把批处理里的输入、输出参数用双引号包裹,让批处理把带空格的文件名识别为一个完整的整体即可。修改后的批处理代码如下:
@echo off cwebp.exe -q 100 -m 6 -mt -af -progress -short "%1" -o "%~n1.webp"
简单说明下改动的作用:
- 给
%1加上双引号"%1":强制批处理将整个带空格的文件名作为单一参数传递给cwebp的输入项 - 给输出文件名
%~n1.webp加上双引号"%~n1.webp":避免原文件名带空格时,输出文件名也被拆分的问题
修改后再测试带空格的目标文件,应该就能正常完成WebP格式转换啦!
备注:内容来源于stack exchange,提问作者Rizwan.A
相关产品推荐
相关产品推荐

