标题: [文本处理] 如何在批处理代码加个条件防误删,加个尺寸相同? [打印本页]
作者: 雷厉风行 时间: 2020-12-12 15:44 标题: 如何在批处理代码加个条件防误删,加个尺寸相同?
在下面代码改成大小和尺寸相同的才移动指定文件夹?- @Echo off&SetLocal EnableDelayedExpansion
- if not exist D:\文件夹3 md D:\文件夹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
- 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
- goto :eof
- :1
- if !b%1!==!b%2! if !c%1!==!c%2! set b%2=&move "!a%2!" D:\文件夹3\
- goto :eof
复制代码
作者: 雷厉风行 时间: 2020-12-12 16:09
本帖最后由 雷厉风行 于 2020-12-12 19:01 编辑
哪位帮忙修改一下
作者: 雷厉风行 时间: 2020-12-18 16:14
写上尺寸基本达到完美,哪个会的写一下
作者: 雷厉风行 时间: 2020-12-26 14:00
本帖最后由 雷厉风行 于 2020-12-26 14:10 编辑
哪个会的写一下,出现误删原因就是大小有些连字节都相同的,这些相同大小的图片很多的尺寸是不同的.只要尺寸和大小都相同才删就基本达到完美.
作者: 雷厉风行 时间: 2021-1-28 21:58
这4楼条件真无法实现吗
作者: 雷厉风行 时间: 2021-2-27 13:52
哪位帮忙修改一下
作者: cutebe 时间: 2021-2-27 15:30
自己写的一个获取图片信息的,速度不快。使用了三方nconvert.exe 和外部JS
改改应该能用^_^- ::获取计算图片尺寸等
- @echo off
- cd/d%~dp0
- set "picfile=测试图片.jpg"
- call :picInfo pxWidth pxHeight xDpi yDpi Width Height "%picfile%"
- echo 图片名:*%picfile%*
- echo 像素宽x高:%pxWidth%x%pxHeight% 分辨率宽%xDpi%dpi 高%yDpi%dpi
- echo 尺寸宽x高:%Width%x%Height% cm
- pause
- goto :eof
- ::====完====
-
- :picInfo file pW pH xdpi ydpi width height pfile ::获取图片宽高信息
- setlocal
- if not exist %7 echo/没有图片!&&pause&goto :eof
- for /f "tokens=1,2 delims=: " %%p in ('"nconvert -info %~s7"')do (
- set "%%p=%%q"
- )
- set N=
- if "%xdpi%" gtr "a" (
- for /f "tokens=1-4 delims=(): " %%p in ('"nconvert -fullinfo %~s7|find "Resolution""')do call :FinfoP "%%p%%q=%%s"
- )
- if not "%N%"=="" set/a xDpi=XResolution,yDpi=YResolution
- set N=
- set "pxW=%width%"
- set "pxH=%height%"
- if not defined pxW echo/获取宽度像素失败!&&pause&goto :eof
- if not defined pxH echo/获取高度像素失败!&&pause&goto :eof
- if not defined Xdpi echo/获取水平DPI失败!&&pause&goto :eof
- if not defined Ydpi echo/获取垂直DPI失败!&&pause&goto :eof
- ::JS根据像素及分辨率计算图片宽高cm
- for /f "tokens=1-2 delims=x " %%x in ('"cscript -nologo -e:jscript CalcDeci.js %pxW% %pxH% %Xdpi% %Ydpi%"')do (
- set xWidth=%%x&set yHeight=%%y
- )
- endlocal&set %1=%pxW%&set %2=%pxH%&set %3=%xDpi%&set %4=%yDpi%&set %5=%xWidth%&set %6=%yHeight%
- goto :eof
-
- :FinfoP "Str1Str2=Val4"
- set/aN+=1
- if %N% leq 3 set/a %1
- goto :eof
复制代码
.js文件存在.bat同目录下- //CalcDeci.js 计算小数,这里保留一位(批处理不能计算小数,JS计算后结果返回BAT)
- //测试通过:CalcDeci.js 831 1530 96 96
- Width = WScript.Arguments(0);
- Height = WScript.Arguments(1);
- Xdpi = WScript.Arguments(2);
- Ydpi = WScript.Arguments(3); //Math.round为四舍五入取整
- WScript.Echo(Math.round(Width*2.54/Xdpi*10)/10+'x'+Math.round(Height*2.54/Ydpi*10)/10);
复制代码
作者: flashercs 时间: 2021-2-27 18:39
[attach]13127[/attach]
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |