You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell执行do循环报MissingLoopStatement错误的原因

报错原因
  • 你执行的for file in images/*; do cwebp -q 50 "$file" -o "${file%.*}.webp"; done是Bash、Zsh等类Unix Shell的专用循环语法,PowerShell不兼容该语法规则。PowerShell会把命令里的do识别为自身原生do-while/do-until循环的关键字,却找不到对应的合法循环主体,因此抛出MissingLoopStatement解析错误。
  • 命令首尾额外添加的反引号(`)是PowerShell的转义符,并非代码包裹标记,会进一步破坏命令结构,加剧解析异常。
PowerShell环境下可直接运行的批量转换命令

如果你的cwebp.exe存放在C:\_o\webp\bin路径下,直接在PowerShell执行以下命令即可完成批量转换:

Get-ChildItem .\images\* -Include *.png,*.jpg,*.jpeg | ForEach-Object {
    C:\_o\webp\bin\cwebp.exe -q 50 $_.FullName -o "$($_.DirectoryName)\$($_.BaseName).webp"
}
  • 如果你已经把cwebp.exe所在路径加入系统环境变量PATH,可以把命令里的全路径C:\_o\webp\bin\cwebp.exe简化为cwebp,同时路径参数也可以根据实际存放位置调整。
  • -Include参数后面可以按需增减需要转换的图片格式后缀。

内容的提问来源于stack exchange,提问作者Daryl Malibiran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 01:45:42