You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ExifTool使用文件标签外数据并自定义GPX文件头元素

用ExifTool生成GPX时动态指定和内容

需求说明

  • 借助ExifTool的高级格式化功能,从目录中图片的GPS数据生成GPX文件
  • 希望直接通过命令行指定字符串,填入GPX文件开头的<name>和<desc>标签
  • 不采用先生成占位符再替换的繁琐方案,优先选择命令行传参或读取shell变量的方式

解决方案

利用ExifTool的-userParam参数可以实现命令行传参,在格式化文件中直接引用这些参数即可。

  1. 编写GPX格式化文件
    创建一个格式化文件(例如命名为gpx_template.txt),内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="ExifTool">
  <name>$userParam{GPXName}</name>
  <desc>$userParam{GPXDesc}</desc>
<#foreach $file in @files>
<#if $file.GPSLatitude>
  <trkpt lat="$file.GPSLatitude#" lon="$file.GPSLongitude#">
    <#if $file.DateTimeOriginal>
    <time>$file.DateTimeOriginal#</time>
    </#if>
  </trkpt>
</#if>
</#foreach>
</gpx>
  1. 命令行传参生成GPX
    直接在命令行通过-userParam传递<name>和<desc>的内容:
exiftool -config gpx_template.txt -userParam GPXName="周末登山轨迹" -userParam GPXDesc="2024年4月郊野登山路线记录" -o output.gpx /path/to/your/images
  1. 读取shell变量传参
    如果已经在shell中定义了相关变量(比如GPX_NAME和GPX_DESC),可以直接引用:
export GPX_NAME="城市骑行路线"
export GPX_DESC="2024年春季城市通勤骑行轨迹"
exiftool -config gpx_template.txt -userParam GPXName="$GPX_NAME" -userParam GPXDesc="$GPX_DESC" -o output.gpx /path/to/your/images

这种方式无需后续修改生成的GPX文件,直接一步到位填充所需内容。

内容的提问来源于stack exchange,提问作者WGroleau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:40:42