[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 求批处理,输入行太长。 命令语法不正确

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set SrcFolder=E:\PS_Work\donggeng\face
  4. set DstFolder=E:\Temp\webptest\out
  5. set imgs=
  6. for /f "delims=\" %%a in ('dir /b "%SrcFolder%\*.png*"') do (
  7. echo %%a
  8. set "imgs=!imgs!"%%a" "
  9. )
  10. echo %imgs%
  11. set /a loop = 0
  12. set /a time = 40
  13. set /a q = 65
  14. cd /d %SrcFolder%
  15. img2webp -v -loop %loop% -lossy -q %q% -d %time%? %imgs% -o %DstFolder%\out_quality%q%_loop%loop%_frametime%time%.webp
  16. pause
复制代码
文件过多报错,输入行太长。
命令语法不正确。

回复 1# sisuotoy


请举例说明你想实现什么功能
如果需要上传文件,可以用阿里云盘或百度网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 1# sisuotoy


   
第31行
  1. img2webp -v -loop %loop% -lossy -q %q% -d %time%? %imgs% -o %DstFolder%\out_quality%q%_loop%loop%_frametime%time%.webp
复制代码
多了个问号,删除后如下,再试试看
  1. img2webp -v -loop %loop% -lossy -q %q% -d %time%  %imgs% -o %DstFolder%\out_quality%q%_loop%loop%_frametime%time%.webp
复制代码

TOP

回复 3# hfxiang


    png文件太多的话,会导致%imgs%包含特别长的一个字符串,超出单行命令的限制。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


    大神说的是对的,解决办法如下,其中imgs_len_Max可根据各自系统所支持的长度进行修改:
  1. @echo off
  2. setlocal enableDelayedExpansion
  3. set "str_FF="
  4. 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
  5. set "_strlen=set $=^!#1^!#&set $=^!$^!^!$^!^!str_FF^!&set/a##=0x^!$:~512,2^!"
  6. set SrcFolder=E:\PS_Work\donggeng\face
  7. set DstFolder=E:\Temp\webptest\out
  8. set "imgs="
  9. set /a imgs_len=0
  10. set /a imgs_len_Max=7168
  11. for /f "delims=\" %%a in ('dir /b "%SrcFolder%\*.png*"') do (
  12. set #1=%%~a
  13. (%_strlen%)
  14. set /a imgs_len+=##+3
  15. if !imgs_len! gtr %imgs_len_Max% (
  16. call :Exec_img2webp
  17. set "imgs="
  18. set /a imgs_len=##+3
  19. )
  20. set "imgs=!imgs!"%%a" "
  21. )
  22. if %imgs_len% gtr 0 call :Exec_img2webp
  23. endlocal
  24. pause
  25. exit /b
  26. :Exec_img2webp
  27. set /a "loop=0"
  28. set /a "times=40"
  29. set /a "q=65"
  30. pushd "%SrcFolder%"
  31. img2webp.exe -v -loop %loop% -lossy -q %q% -d %times% %imgs% -o %DstFolder%\out_quality%q%_loop%loop%_frametimes%times%.webp
  32. popd
  33. exit /b
复制代码

TOP

返回列表