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

[文本处理] 如何在批处理代码加个条件防误删,加个尺寸相同?

在下面代码改成大小和尺寸相同的才移动指定文件夹?
  1. @Echo off&SetLocal EnableDelayedExpansion
  2. if not exist D:\文件夹3 md D:\文件夹3
  3. for /f "tokens=*" %%a in ('dir/a-d/b/oe')do set/a c+=1&set a!c!=%%a&set b!c!=%%~za&set c!c!=%%~xa
  4. for /l %%a in (1,1,%c%)do set/a d=%%a+1&for /l %%b in (!d!,1,%c%)do if not !b%%a!.==. call :1 %%a %%b
  5. goto :eof
  6. :1
  7. if !b%1!==!b%2! if !c%1!==!c%2! set b%2=&move "!a%2!" D:\文件夹3\
  8. goto :eof
复制代码

本帖最后由 雷厉风行 于 2020-12-12 19:01 编辑

哪位帮忙修改一下

TOP

写上尺寸基本达到完美,哪个会的写一下

TOP

本帖最后由 雷厉风行 于 2020-12-26 14:10 编辑

哪个会的写一下,出现误删原因就是大小有些连字节都相同的,这些相同大小的图片很多的尺寸是不同的.只要尺寸和大小都相同才删就基本达到完美.

TOP

这4楼条件真无法实现吗

TOP

哪位帮忙修改一下

TOP

自己写的一个获取图片信息的,速度不快。使用了三方nconvert.exe 和外部JS
改改应该能用^_^
  1. ::获取计算图片尺寸等
  2. @echo off
  3. cd/d%~dp0
  4. set "picfile=测试图片.jpg"
  5. call :picInfo pxWidth pxHeight xDpi yDpi Width Height "%picfile%"
  6. echo 图片名:*%picfile%*
  7. echo 像素宽x高:%pxWidth%x%pxHeight%  分辨率宽%xDpi%dpi 高%yDpi%dpi
  8. echo 尺寸宽x高:%Width%x%Height% cm
  9. pause
  10. goto :eof
  11. ::====完====
  12. :picInfo file pW pH xdpi ydpi width height pfile ::获取图片宽高信息
  13. setlocal
  14. if not exist %7 echo/没有图片!&&pause&goto :eof
  15. for /f "tokens=1,2 delims=: " %%p in ('"nconvert -info %~s7"')do (
  16. set "%%p=%%q"
  17. )
  18. set N=
  19. if "%xdpi%" gtr "a" (
  20. for /f "tokens=1-4 delims=(): " %%p in ('"nconvert -fullinfo %~s7|find "Resolution""')do call :FinfoP "%%p%%q=%%s"
  21. )
  22. if not "%N%"=="" set/a xDpi=XResolution,yDpi=YResolution
  23. set N=
  24. set "pxW=%width%"
  25. set "pxH=%height%"
  26. if not defined pxW echo/获取宽度像素失败!&&pause&goto :eof
  27. if not defined pxH echo/获取高度像素失败!&&pause&goto :eof
  28. if not defined Xdpi echo/获取水平DPI失败!&&pause&goto :eof
  29. if not defined Ydpi echo/获取垂直DPI失败!&&pause&goto :eof
  30. ::JS根据像素及分辨率计算图片宽高cm
  31. for /f "tokens=1-2 delims=x " %%x in ('"cscript -nologo -e:jscript CalcDeci.js %pxW% %pxH% %Xdpi% %Ydpi%"')do (
  32. set xWidth=%%x&set yHeight=%%y
  33. )
  34. endlocal&set %1=%pxW%&set %2=%pxH%&set %3=%xDpi%&set %4=%yDpi%&set %5=%xWidth%&set %6=%yHeight%
  35. goto :eof
  36. :FinfoP "Str1Str2=Val4"
  37. set/aN+=1
  38. if %N% leq 3 set/a %1
  39. goto :eof
复制代码
.js文件存在.bat同目录下
  1. //CalcDeci.js 计算小数,这里保留一位(批处理不能计算小数,JS计算后结果返回BAT)
  2. //测试通过:CalcDeci.js 831 1530 96 96
  3. Width  = WScript.Arguments(0);
  4. Height = WScript.Arguments(1);
  5. Xdpi   = WScript.Arguments(2);
  6. Ydpi   = WScript.Arguments(3); //Math.round为四舍五入取整
  7. WScript.Echo(Math.round(Width*2.54/Xdpi*10)/10+'x'+Math.round(Height*2.54/Ydpi*10)/10);
复制代码
如无特别说明,代码测试环境均为 XP SP3

TOP

[attach]13127[/attach]
微信:flashercs
QQ:49908356

TOP

返回列表