找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19500|回复: 7

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

[复制链接]
发表于 2020-12-12 15:44:03 | 显示全部楼层 |阅读模式
在下面代码改成大小和尺寸相同的才移动指定文件夹?
  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 16:09:15 | 显示全部楼层
本帖最后由 雷厉风行 于 2020-12-12 19:01 编辑

哪位帮忙修改一下
 楼主| 发表于 2020-12-18 16:14:49 | 显示全部楼层
写上尺寸基本达到完美,哪个会的写一下
 楼主| 发表于 2020-12-26 14:00:38 | 显示全部楼层
本帖最后由 雷厉风行 于 2020-12-26 14:10 编辑

哪个会的写一下,出现误删原因就是大小有些连字节都相同的,这些相同大小的图片很多的尺寸是不同的.只要尺寸和大小都相同才删就基本达到完美.
 楼主| 发表于 2021-1-28 21:58:32 | 显示全部楼层
这4楼条件真无法实现吗
 楼主| 发表于 2021-2-27 13:52:12 | 显示全部楼层
哪位帮忙修改一下
发表于 2021-2-27 15:30:27 | 显示全部楼层
自己写的一个获取图片信息的,速度不快。使用了三方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);
复制代码
发表于 2021-2-27 18:39:19 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 10:45 , Processed in 0.014616 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表