【问题标题】:increment duplicate file name exiftool增加重复文件名 exiftool
【发布时间】:2018-04-08 11:34:00
【问题描述】:

我有以下脚本可以正常工作,只是它不能处理重复的文件名。 我怎样才能简单地修改它,以便如果找到具有相同名称的图片,它只是在文件名的末尾添加一个增量,例如如果两次找到文件 IMG_20170404_170509.JPG,则第二个实例将重命名为 IMG_20170404_170509_1.JPG,如果找到另一个,则为 IMG_20170404_170509_2.JPG,等等。

这是我当前的脚本:

exiftool -o . '-Directory<$createdate/${model;}' -d /volume1/Synology/Pictures/Pictures/post_2016/%Y/%m/ -r /volume1/photo/"input"/

谢谢

附:我知道在上面的脚本中 -Directory 和 $Createdate 之间有一个

【问题讨论】:

  • 我假设您的命令中的“输入”之前有一个美元符号? /volume1/photo/"$input"/

标签: exiftool


【解决方案1】:

因为您想更改文件名和目录,所以您必须使用Filename 伪标签而不是Directory 伪标签。

试试这个命令:
exiftool -o . '-Filename<$createdate/${model;}/%f%+c%E' -d /volume1/Synology/Pictures/Pictures/post_2016/%Y/%m -r /volume1/photo/"$input"/

重命名文件时可以包含目录路径(请参阅FileName and Directory tags 的第 3 段)。 %f 保存文件的名称。 %c 变量是在文件名冲突的情况下要添加的计数器。添加一个加号将在计数器编号前面放置一个下划线(请参阅-w option 上的文档)。 %E 添加扩展名,包括前导点(小写 e 不包括前导点)。

【讨论】:

  • 非常感谢。我会试试这个并回复反馈。
  • 附加信息,您可以使用Testname 伪标签代替Filename 来测试重命名的结果,而无需实际处理文件。
  • 嗨 StarGeek。我试过你的代码,它工作得很好。非常感谢!
  • 我有一个后续问题。我需要对文件进行两次排序:一次按照上述脚本,但第二次在单独的目录树中(用于后续加密和上传到云存储)。它是我需要排序到第二个目录树而不是原始目录树的“最终”文件(除了在存在重复文件并且复制的文件被重命名的精确情况外,两者通常是相同的 - 就是这样重命名的文件我想移动到新的目录树)。关于如何做到这一点的任何建议?谢谢
  • 仅当 Directory1 中存在文件名冲突时才复制到 Directory2?不,我真的想不出只用 exiftool 的方法。我认为这需要更多的实际脚本。我假设 Directory2 中的文件在加密/上传后被删除?如果是这样,我会这样想:1)获取当前时间戳 2)运行上面的 exiftool 命令,3)获取其中包含数字复制模式的任何文件的名称,UnderscoreNumberDotJpg 模式,并且也比脚本开始时保存的时间戳。 4) 将这些文件复制到 Directory2。
猜你喜欢
  • 1970-01-01
  • 2018-10-01
  • 2022-11-11
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 2017-05-16
  • 1970-01-01
  • 2012-03-24
相关资源
最近更新 更多