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

[文件操作] [已解决]批处理怎样批量按图片宽度移动图片?

如题,批量按图片宽度移动图片,且保证路径相同。例如:在有图片在
D:\image\aaa\1.jpg   尺寸:400px*200px
D:\image\aaa\2.jpg    尺寸:200px*200px
D:\image\bbb\3.jpg   尺寸:200px*100px
D:\image\bbb\4.jpg   尺寸:500px*100px
D:\image\bbb\ccc\5.jpg   尺寸:150px*100px

现要求把D:\image(包括子文件夹)下图片宽度小于300px的图片移动到D:\smailpicture里,且保证路径一样(就只是把images换成了smailpicture)

处理后D:\image下有图片
D:\image\aaa\1.jpg   尺寸:400px*200px
D:\image\bbb\4.jpg   尺寸:500px*100px

D:\smailpicture下有图片
D:\image\aaa\2.jpg    尺寸:200px*200px
D:\image\bbb\3.jpg   尺寸:200px*100px
D:\image\bbb\ccc\5.jpg   尺寸:150px*100px

用途:给图片加批量价水印时,水印没有办法按照图片的大小自适应,所以就只能把大图 小图分开分别为他们加

[ 本帖最后由 daohe 于 2010-5-14 20:50 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

我倒是可以写一个取JPG图像尺寸的exe。不过先看别人有没有更简单的方法吧。

TOP

  用jhead.exe来读取图片的尺寸信息,再做相应处理:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /a-d /b /s *.jpg') do (
  4.     echo 正在处理 "%%i"
  5.     for /f "tokens=2 delims=:x " %%j in ('jhead -cs con "%%i" 2^>nul^|findstr /bi "Resolution"') do (
  6.         if %%j lss 300 (
  7.             set "FullRoute=%%~dpi"
  8.             set "NewRoute=!FullRoute:%cd%=D:\smailpicture!"
  9.             md "!NewRoute!" 2>nul
  10.             move "%%i" "!NewRoute!"
  11.         )
  12.     )
  13. )
  14. echo 处理完毕
  15. pause
复制代码

  注意事项:jpg的完整路径中不能含有半角感叹号;若有半角感叹号,则代码必须稍作变动,但是效率将略有下降。
  jhead.exe可以在这里下载:http://bbs.bathome.net/thread-4566-1-1.html
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

回复 3楼 的帖子

老大你太强了,完美解决!

TOP

回复 2楼 的帖子

现成的工具挺多,比如:nconvert、jhead、ImageMagick等。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表