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

[文件操作] [已解决]批处理据图片尺寸大小计算幅面/纸张大小并统计相应数量

下面的代码可以获取文件夹下图片的大小,但是不是很直观,想进一步得出每张图片的规格。
代码得出的尺寸算式不规则,首先判断算式中的那个数字大,再根据规则比对,规则如下:
大于129等于A0+
大于118.9小于129等于A0
大于84.1小于118.9等于A1
大于59.4小于84.1等于A2
大于42小于59.4等于A3
大于29.7小于42等于A4
小于29.7也等于A4

在图片尺寸.txt的最下面再统计出:
共有A0+多少张;共有A0多少张;共有A1多少张;共有A2多少张;共有A3多少张;共有A4多少张;
折合A4共有多少张。
折合规则为:
A0+=32张
A0=16张
A1=8张
A2=4张
A3=2张
A4=1张

希望得到这样的结果
J2-11-00001.JPG 123.6x100.0  A0
J2-11-000010.JPG 63.2x100.0  A1
共有A0+=0张;共有A0=1张;共有A1=1张;共有A2=0张;共有A3=0张;共有A4=0张;
折合A4共有24张。
  1. @set @n=0//& cd /d "F:\测试\"& dir /a-d/s/b *.tif *.jpg *.png *.图片格式| cscript -nologo -e:jscript "%~f0" >图片尺寸.txt& pause& start notepad a.txt& exit /b
  2. var fso = new ActiveXObject('Scripting.FileSystemObject');
  3. var img = new ActiveXObject('WIA.ImageFile');
  4. while(!WSH.StdIn.AtEndOfStream){
  5.     var f = fso.GetFile(WSH.StdIn.ReadLine());
  6.     img.LoadFile(f);
  7.     WSH.Echo(fso.GetFileName(f)+' '+
  8.         (img.Width/img.HorizontalResolution*2.54).toFixed(1)+'x'+
  9.             (img.Height/img.VerticalResolution*2.54).toFixed(1));
  10. }
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
非常好的论坛

Microsoft JScript 运行时错误: Automation

本帖最后由 pcl_test 于 2017-3-15 20:11 编辑

上面的这个代码 在win10 可以运行  为什么在XP下不能运行呢
报:Microsoft JScript 运行时错误: Automation 服务器不能创建对象
非常好的论坛

TOP

本帖最后由 001011 于 2017-3-15 20:14 编辑

回复 3# WHY
非常感谢,再麻烦您一下。最后那个折合能再加进去啊。
还有XP系统下  只有‘宽度’和‘高度’   没有分辨率
非常好的论坛

TOP

回复 5# WHY
XP下还是不能用,这个就不纠结了。WIN10可以用就ok。非常感谢!
非常好的论坛

TOP

返回列表