我正在尝试使用cwebp编码器将一组PNG图像转换为WEBP图像。 我设法使用JAVA程序,但现在我想写一个批处理文件来完成这项任务。 经过一番搜索,我已经获得了 metal03326的 solution。 但我希望在此修改一下,应该跳过9个补丁图像。
这是我做的:
pushd %1
set "DOTNINE=.9"
echo %DOTNINE%
for /f "delims=" %%n in ('dir /b /s /a-d-h-s') do (
set MY=%%~nn
set MY=%MY:~-2%
rem IF NOT ".webp" == "%%~xn" IF NOT "MY" == ".9" ("%~dp0cwebp.exe" -q 80 "%%n" -o "%%n.webp") ELSE (echo File already WEBP.)
)
popd
但我收到语法错误。上面的代码有什么问题?
答案 0 :(得分:1)
要在循环中多次重新分配变量(即MY
),您必须使用delayed expansion:
setlocal enableDelayedExpansion
pushd "%~1"
for /f "delims=" %%n in ('dir /b /a-d-h-s') do (
set MY=%%~nn
set MY=!MY:~-2!
IF NOT ".webp" == "%%~xn" IF NOT "!MY!" == ".9" ("%~dp0cwebp.exe" -q 80 "%%n" -o "%%n.webp") ELSE (echo File already WEBP.)
)
popd