ExifTool 是一款開源、免費的命令行工具,支持跨平台,可以安裝到 Windows、Linux 和 Mac OS 平台上。

ExifTool下載、安裝和使用教程(附官網安裝包,適合新手小白)_exiftool下載教程

ExifTool 用於讀取、寫入和編輯圖像、音頻、視頻、PDF 等文件的元數據。元數據是指嵌入在文件中的隱藏信息,如拍攝時間、相機型號、GPS 座標、作者、版權等。

ExifTool 以命令行方式運行,雖然沒有圖形界面,但功能極其強大,支持超過 500 種文件格式和數十種元數據標準(如 EXIF、IPTC、XMP、GPS 等),適合技術用户和開發者使用。

和 ExifTool 同領域的工具有很多,主流的有 Lightroom、XnView、IrfanView 等。相比之下,ExifTool 的優勢是:完全免費,支持 200+ 多種格式,支持自動化腳本,支持自動備份等。

下載ExifTool

ExifTool官方發佈了 3 款安裝包:

下載地址:https://pan.quark.cn/s/618e4bb53681

  • exiftool-13.42_64.zip:適用於 Windows 平台的安裝包;
  • ExifTool-13.42.pkg:適用於 Mac OS 平台的安裝包;
  • Image-ExifTool-13.42.tar.gz:適用於 Linux 平台的安裝包。

安裝ExifTool

筆者使用的電腦是 Windows x64 系統,接下來教大家手把手在 Windows 上安裝ExifTool。

1) 下載得到 exiftool-13.42_64.zip,解壓後的文件夾如下圖所示:

ExifTool下載、安裝和使用教程(附官網安裝包,適合新手小白)_exiftool下載教程_02

2) 將文件 exiftool(-k).exe 重命名為 exiftool.exe。

3) 配置環境變量,步驟如下:

① 按照下圖所示,打開電腦的設置窗口:

ExifTool下載、安裝和使用教程(附官網安裝包,適合新手小白)_exiftool下載安裝教程_03

② 按照下圖找到環境變量的設置入口:

ExifTool下載、安裝和使用教程(附官網安裝包,適合新手小白)_exiftool官網_04

③ 找到系統變量 Path,雙擊打開它:

ExifTool下載、安裝和使用教程(附官網安裝包,適合新手小白)_exiftool下載_05

④ 在 Path 系統變量中,添加 ExifTool 的安裝路徑,比如筆者將它安裝到了 D 盤下的 exiftool-13.42_64 文件夾裏:

ExifTool下載、安裝和使用教程(附官網安裝包,適合新手小白)_exiftool下載教程_06

逐級點擊“保存”或者“確定”即可。

4) 檢測環境變量是否配置成功。按“Win+R”組合鍵,輸入“cmd” 打開 CMD 命令行窗口,如下圖所示,輸入 exiftool -ver 命令:

ExifTool下載、安裝和使用教程(附官網安裝包,適合新手小白)_exiftool下載安裝教程_07

輸出 exiftool 的版本號信息,表示配置成功。

使用ExifTool

使用 ExifTool 需要在 CMD 命令行窗口中執行相應的命令。例如,讀取文件 a.jpg 的所有元數據(存儲路徑是 ),執行如下命令:

exiftool a.jpg

執行結果如下圖所示:

ExifTool下載、安裝和使用教程(附官網安裝包,適合新手小白)_exiftool下載教程_08

還是以 a.jpg 文件為例,這裏再給出幾種使用 ExifTool 的命令:

//寫入標籤artist、值rmnof到文件a.jpg(如果artist已存在將更新其值)
exiftool -artist=rmnof a.jpg
exiftool -artist=rmnof a.jpg b.jpg c.jpg (同時寫入多個文件)
exiftool -artist=rmnof D:/images (寫入目錄中所有文件)
exiftool -artist=rmnof D:/images -r (遞歸處理子目錄)
exiftool -artist="rmnof" -copyright="rmnof.com" a.jpg (同時寫入多個標籤)

//將創建時間、光圈、快門速度和ISO四項以列表形式保存為out.txt
exiftool -T -createdate -aperture -shutterspeed -iso DIR > out.txt

//打印某照片的尺寸和曝光時間
exiftool -s -ImageSize -ExposureTime a.jpg

//遞歸掃描某目錄所有照片,將共有的元數據寫入相同文件名的txt文件中
exiftool -r -w .txt -common DIR

//生成image.raw的縮略圖thumbnail.jpg
exiftool -b -ThumbnailImage image.raw > thumbnail.jpg

//從a.jpg提取完整的xmp數據記錄
exiftool -xmp -b a.jpg> out.xmp

//遞歸刪除某目錄下所有文件的全部元數據
exiftool -all= -r DIR

ExifTool命令格式

讀取:exiftool [OPTIONS] [-TAG...] [--TAG...] FILE...
寫入:exiftool [OPTIONS] -TAG[+-<]=[VALUE]... FILE...
複製:exiftool [OPTIONS] -tagsFromFile SRCFILE [-SRCTAG[>DSTTAG]...] FILE...
其他:exiftool [ -ver | -list[w|f|r|wf|g[NUM]|d|x] ]

其中,各個參數的含義分別是:

標籤選項
  -TAG or --TAG                    提取或排除指定的標籤
  -TAG[+-^]=[VALUE]                向標籤寫入新值
  -TAG[+-]<=DATFILE                從數據文件讀取標籤寫入文件
  -TAG[+-]<SRCTAG                  複製標籤值(見-tagsFromFile)

  -tagsFromFile SRCFILE            複製某文件的標籤值
  -x TAG      (-exclude)           排出指定標籤
 
輸入輸出文本格式
  -args       (-argFormat)         將元數據格式化為ExifTool參數
  -b          (-binary)            以二進制輸出元數據
  -c FMT      (-coordFormat)       設置GPS座標格式
  -charset [[TYPE=]CHARSET]        指定字符編碼
  -csv[[+]=CSVFILE]                以CSV格式導出/導入標籤
  -d FMT      (-dateFormat)        設置日期/時間的格式
  -D          (-decimal)           以十進制顯示標籤ID號
  -E,-ex,-ec  (-escape(HTML|XML|C))為HTML,XML或C的轉義標記值
  -f          (-forcePrint)        強制打印所有指定的標籤
  -g[NUM...]  (-groupHeadings)     按標籤組輸出
  -G[NUM...]  (-groupNames)        打印每個標籤的組名
  -h          (-htmlFormat)        輸出為HTML格式
  -H          (-hex)               以十六進制顯示標籤ID號
  -htmlDump[OFFSET]                生成HTML格式的二進制轉儲
  -j[[+]=JSONFILE] (-json)         以JSON格式導出/導入標籤
  -l          (-long)              使用長2行輸出格式(標籤、值各一行)
  -L          (-latin)             使用Windows Latin1編碼
  -lang [LANG]                     設定當前語言
  -listItem INDEX                  從列表中提取特定項目
  -n          (--printConv)        不轉換,直接打印
  -p FMTFILE  (-printFormat)       以指定格式輸出
  -php                             將標籤導出為PHP數組
  -s[NUM]     (-short)             簡短輸出
  -S          (-veryShort)         非常簡短輸出
  -sep STR    (-separator)         設置列表項的分隔符字符串
  -sort                            按字母順序對輸出進行排序
  -struct                          啓用結構化信息的輸出
  -t          (-tab)               以製表符分隔的列表格式輸出
  -T          (-table)             以表格格式輸出
  -v[NUM]     (-verbose)           打印詳細消息
  -w[+|!] EXT (-textOut)           寫入(或覆蓋!)輸出的文本文件
  -W[+|!] FMT (-tagOut)            為每個標籤寫入輸出文本文件
  -Wext EXT   (-tagOutExt)         用-W指定要寫入的文件類型
  -X          (-xmlFormat)         使用RDF/XML輸出格式

執行選項
  -a          (-duplicates)        允許提取重複的標籤
  -e          (--composite)        不生成複合標籤
  -ee         (-extractEmbedded)   從嵌入式文件中提取信息
  -ext[+] EXT (-extension)         只處理具有指定擴展名的文件
  -F[OFFSET]  (-fixBase)           修復製造商Makernotes偏移
  -fast[NUM]                       提取元數據時提高速度
  -fileOrder[NUM] [-]TAG           設置文件處理順序
  -i DIR      (-ignore)            忽略指定的目錄名稱
  -if[NUM] EXPR                    按條件處理文件
  -m          (-ignoreMinorErrors) 忽略小錯誤和警告
  -o OUTFILE  (-out)               設置輸出文件或目錄名稱
  -overwrite_original              重命名tmp文件覆蓋原始文件
  -overwrite_original_in_place     通過複製tmp文件覆蓋原始文件
  -P          (-preserve)          保留文件修改日期/時間
  -password PASSWD                 處理受保護文件的密碼
  -progress[:[TITLE]]              顯示文件進度計數
  -q          (-quiet)             -q不顯示正常消息,-q-q不顯示警告
  -r[.]       (-recurse)           遞歸處理子目錄
  -scanForXMP                      掃描所有文件以獲取XMP
  -u          (-unknown)           提取未知標籤
  -U          (-unknown2)          提取未知的二進制標籤
  -wm MODE    (-writeMode)         設置用於寫入/創建標籤的模式
  -z          (-zip)               讀/寫壓縮信息

其他選項
  -@ ARGFILE                       從文件中讀取命令行參數
  -k          (-pause)             結束前先暫停
  -list[w|f|wf|g[NUM]|d|x]         列出各種exiftool功能
  -ver                             打印版本號
  --                               結束選項

特殊功能
  -geotag TRKFILE                  從指定的GPS日誌對圖像進行地理標記
  -globalTimeShift SHIFT           移位所有格式化的日期/時間值
  -use MODULE                      從插件模塊添加功能

實用工具
  -delete_original[!]              刪除"_original"備份
  -restore_original                從"_original"備份還原

高級選項
  -api OPT[[^]=[VAL]]              設置ExifTool API選項
  -common_args                     定義通用參數
  -config CFGFILE                  指定配置文件名
  -echo[NUM] TEXT                  將文本回顯到stdout或stderr
  -efile[NUM][!] ERRFILE           保存錯誤的文件名
  -execute[NUM]                    一行執行多個命令
  -srcfile FMT                     處理其他文件來源
  -stay_open FLAG                  繼續閲讀-@ argfile,即使在EOF之後
  -userParam PARAM[[^]=[VAL]]      設置用户參數 (API UserParam opt)

關於 ExifTool 更詳細的介紹,感興趣的讀者可前往 ExifTool 官網