标题: [文件操作] 求批处理,输入行太长。 命令语法不正确 [打印本页]
作者: sisuotoy 时间: 2022-8-18 23:13 标题: 求批处理,输入行太长。 命令语法不正确
- @echo off
-
- setlocal enabledelayedexpansion
-
-
- set SrcFolder=E:\PS_Work\donggeng\face
-
- set DstFolder=E:\Temp\webptest\out
-
- set imgs=
-
- for /f "delims=\" %%a in ('dir /b "%SrcFolder%\*.png*"') do (
-
- echo %%a
-
- set "imgs=!imgs!"%%a" "
-
- )
-
- echo %imgs%
-
- set /a loop = 0
-
- set /a time = 40
-
- set /a q = 65
-
- cd /d %SrcFolder%
-
-
- img2webp -v -loop %loop% -lossy -q %q% -d %time%? %imgs% -o %DstFolder%\out_quality%q%_loop%loop%_frametime%time%.webp
-
-
- pause
复制代码
文件过多报错,输入行太长。
命令语法不正确。
作者: Batcher 时间: 2022-8-20 09:49
回复 1# sisuotoy
请举例说明你想实现什么功能
如果需要上传文件,可以用阿里云盘或百度网盘。
如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: hfxiang 时间: 2022-8-20 20:36
回复 1# sisuotoy
第31行- img2webp -v -loop %loop% -lossy -q %q% -d %time%? %imgs% -o %DstFolder%\out_quality%q%_loop%loop%_frametime%time%.webp
复制代码
多了个问号,删除后如下,再试试看- img2webp -v -loop %loop% -lossy -q %q% -d %time% %imgs% -o %DstFolder%\out_quality%q%_loop%loop%_frametime%time%.webp
复制代码
作者: Batcher 时间: 2022-8-20 21:15
回复 3# hfxiang
png文件太多的话,会导致%imgs%包含特别长的一个字符串,超出单行命令的限制。
作者: hfxiang 时间: 2022-8-21 11:26
回复 4# Batcher
大神说的是对的,解决办法如下,其中imgs_len_Max可根据各自系统所支持的长度进行修改:- @echo off
- setlocal enableDelayedExpansion
- set "str_FF="
- for %%b in (f e d c b a 9 8 7 6 5 4 3 2 1 0) do for %%c in (f e d c b a 9 8 7 6 5 4 3 2 1 0) do call set str_FF=!str_FF!%%b%%c
- set "_strlen=set $=^!#1^!#&set $=^!$^!^!$^!^!str_FF^!&set/a##=0x^!$:~512,2^!"
-
- set SrcFolder=E:\PS_Work\donggeng\face
- set DstFolder=E:\Temp\webptest\out
- set "imgs="
- set /a imgs_len=0
- set /a imgs_len_Max=7168
- for /f "delims=\" %%a in ('dir /b "%SrcFolder%\*.png*"') do (
- set #1=%%~a
- (%_strlen%)
- set /a imgs_len+=##+3
- if !imgs_len! gtr %imgs_len_Max% (
- call :Exec_img2webp
- set "imgs="
- set /a imgs_len=##+3
- )
- set "imgs=!imgs!"%%a" "
- )
- if %imgs_len% gtr 0 call :Exec_img2webp
- endlocal
- pause
- exit /b
-
- :Exec_img2webp
- set /a "loop=0"
- set /a "times=40"
- set /a "q=65"
- pushd "%SrcFolder%"
- img2webp.exe -v -loop %loop% -lossy -q %q% -d %times% %imgs% -o %DstFolder%\out_quality%q%_loop%loop%_frametimes%times%.webp
- popd
- exit /b
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |