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

[文件操作] jhead:获取及修改照片exif信息的好工具

软件名称:jhead 3.04
软件大小:167K
更新日期:2019-11-22
官方下载:http://www.sentex.net/~mwandel/jhead/
本地下载:http://bcn.bathome.net/s/tool/index.html?key=jhead

软件简介:

  jhead是德裔加拿大人Matthias Wandel制作的jpeg文件头编辑修改软件,也就是编辑修改exif的软件,比其他任何图形软件更加直接、功能强大。

  用法简介(来源于网络:)
  1. 一、通用指令参数
  2. -te <其他jpeg文件>
  3. 将其他jpeg文件的eixf导入目标jpeg。例如"jhead –te D:\My Pictures\B.jpg D:\My Pictures\A.jpg"
  4. -dc
  5. 删除jpeg信息中的备注。注意,jpeg文件有两个备注,一是和其他文件一样的备注,另一个是exif信息中的备注。jhead仅对exif信息有效。
  6. -de
  7. 完全删除exif信息。
  8. -du
  9. 删除非原始exif信息,例如Photoshop、Turbophoto之类编辑后修改exif留下的信息。
  10. -purejpg
  11. 删除所有jpeg文件非必须的信息。相当于-de、-dc和-du的集合,可以将文件减小数k。
  12. -ce
  13. 修改文件的jpeg文件头部分备注(此备注并非exif信息)。该指令会打开文本编辑器,并在编辑器关闭时将备注信息存入文件。
  14. -cs <文本文件>
  15. 导出备注。例如"jhead –cs D:\1.txt D:\My Pictures\A.jpg"
  16. -ci <文本文件>
  17. 导入备注。例如"jhead –ci D:\1.txt D:\My Pictures\A.jpg"
  18. -cl <备注文字>
  19. 直接输入备注。。例如"jhead –cl 我的备注 D:\My Pictures\A.jpg"
  20. 二、其他指令
  21. 时间日期
  22. -ft 将jpeg文件的“修改时间”修改为exif信息中记录的时间。
  23. -n[<格式-顺序>] 该指令会将文件名修改为exif信息中记录的“创建时间”;如果jpeg文件没有exif或者exif中的创建时间不可用,则将文件名修改为文件的“修改时间”。
  24. 默认的格式-顺序为MMDD-HHMMSS
  25. 格式-顺序参数如下:
  26. %d-日(01-31)
  27. %H-小时(00-23)
  28. %j-一年中的第几天(001-366)
  29. %m-月(01-12)
  30. %M-分钟(00-59)
  31. %S-秒(00-59)
  32. %U-一年中的第几周(00-53)
  33. %w-星期几(0-6,周日为0)
  34. %y-两位数纪年(00-99)
  35. %Y-四位数几年
  36. %i-添加数字序号
  37. 例如:
  38. jhead -n%Y%m%d-%H%M%S d:\*.jpg
  39. 将所有jpg文件修改为YYYYMMDD-HHMMSS.jpg的格式。
  40. -nf 与“-n”相同功能相同,不保留原文件名。
  41. -a 修改不同扩展名的同名文件名,相机拍摄的avi短片exif信息存储在与其同名的thm文件中,可用此指令给avi文件更名。一般与“-n”指令共同使用。
  42. -ta<时差> 修正时差,例如时差根据时区确定,例如+1:00或者-1:00
  43. -da<日期>-<日期> 修正日期。日期格式是yyyy:mm:dd、yyyy:nn:dd+hh:mm或者 yyyy:mm:dd+hh:mm:ss。根据前后参数时间差调整exif的时间。
  44. -ts<日期-时间> 直接修改exif中的拍摄时间,日期-时间格式为yyyy:mm:dd-hh:mm:ss
  45. 缩略图
  46. -dt 删除exif中的缩略图。这个缩略图一般为240x160像素,10k大小,用于数码相机、Windows XP查看照片,删除它不会影响工作。
  47. -st <文件名> 将exif中的缩略图复制为另一个jpeg文件
  48. -rt <文件名> 用另一个jpeg文件替换exif中的缩略图
  49. -rgt[大小] 刷新exif缩略图,其中大小为缩略图的最大边长。
  50. 旋转
  51. -autorot 根据exif中记录的水平方向信息转动jpeg照片。
  52. -norot 清除exif中的水平方向信息。
复制代码
应用实例:

把特定像素大小的图片移动到指定文件夹
http://bbs.bathome.net/thread-4566-1-1.html#pid31581

删除指定像素大小的图片
http://bbs.bathome.net/thread-16580-1-1.html#pid107513
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

回复 5# 随风


    大佬太帅了,我按照你的思路,加了 set "Keywords=标记"进去,读到了我想要的信息。
    我看了用法简介里,没有找到关于修改【IPTC data:】下的【Keywords】参数的相关内容,请问您这边知道怎么修改图片的【Keywords】参数么?

TOP

1、找出指定大小(比如100 x 50)的图片,并把它们移到到指定文件夹。@echo off
set SrcFolder=C:\test\BatHome
set DstFolder=C:\test\Batcher
for %%a in ("%SrcFolder%\*.jpg") do (
  jhead "%%a"|find "Res ...
Batcher 发表于 2009-6-14 18:04

刚发现 -c 参数:

g:\我的文档\桌面>jhead -c *.jpg
"1-6537866-5693-t.jpg" 128x171
"2.jpg" 200x100 (bw)
"87.jpg" 87x48 (bw)

TOP

正好需要这样的软件,网上找的其他软件好像都不太好,可以修改的信息不是很完整
试试这个看看

刚试了,非常好用,ps修改的照片,都可以重新导入另外的照片的exif

[ 本帖最后由 ywq111 于 2011-1-18 21:13 编辑 ]

TOP

  1. @echo off
  2. ::获取照片的主要(部分)exif信息
  3. set "Filename=文件名  "
  4. set "Filesize=文件大小 "
  5. set "Filedate=文件日期 "
  6. set "Cameramake=相机制造商"
  7. set "Cameramodel=相机型号 "
  8. set "Date/Time=拍摄时间 "
  9. set "Resolution=宽度/高度 "
  10. set "Flashused=闪光灯使用"
  11. set "Focallength=焦距   "
  12. set "Exposuretime=曝光时间 "
  13. set "Aperture=光圈   "
  14. set "Whitebalance=白平衡  "
  15. set "MeteringMode=测光模式 "
  16. set "Exposure=曝光   "
  17. cd/d e:\Lc\111\tem p
  18. setlocal enabledelayedexpansion
  19. (for /f "tokens=1* delims=:" %%a in ('jhead *.jpg 2^>nul') do (
  20.    set "str=%%a"&set "str=!str: =!"
  21.    for %%i in (!str!) do if defined %%i (
  22.       if "!%%i!"=="文件名  " (
  23.          set /a n+=1
  24.          if !n! neq 1 echo;
  25.       )
  26.       echo;!%%i! : %%b
  27.     )
  28. ))
  29. echo;&echo 共 %n% 个jpg文件&echo;
  30. pause
复制代码

[ 本帖最后由 随风 于 2011-1-7 10:31 编辑 ]
技术问题请到论坛发帖求助!

TOP

刚好最近在找类似的软件。
不但找到了,而且还找到了这么好的一个BAT学习站点。
真是不枉此行啊。

TOP

学习学习学习学习学习学习学习学习学习学习学习

学习学习学习学习学习学习学习学习学习学习学习

TOP

应用实例收集

1、找出指定大小(比如100 x 50)的图片,并把它们移到到指定文件夹。
  1. @echo off
  2. set SrcFolder=C:\test\BatHome
  3. set DstFolder=C:\test\Batcher
  4. for %%a in ("%SrcFolder%\*.jpg") do (
  5.   jhead "%%a"|find "Resolution   : 100 x 50">nul&&move "%%a" "%DstFolder%"
  6. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表