我正在尝试从一批图像中获取图像日期,并将该图像日期粘贴到另一批具有相同文件名(但文件类型不同)的图像上
我找到了一个帮助我的AppleScript:http://brettgrossphotography.com/2008/12/10/aperture-applescript-export-restore-metadata
但是,日期部分很棘手。
在导出部分中,我正常解析日期,但导入部分不起作用。
if (curTagShort is "ImageDate") then
log "-- try to set the date --"
-- set curDate to (curVal as date)
set curDate to rich text of (item ctr of theList)
log (curVal as string)
adjust image date (date curVal as string) of images {curImg}
else
以上代码生成以下日志:
(*-- try to set the date --*)
(*Freitag, 26. September 2014 20:21:21*)
get date "Freitag, 26. September 2014 20:21:21" of image version id "CeT8CoCwSYuhejftq9kmag"
--> error number -1728 from date "Freitag, 26. September 2014 20:21:21" of image version id "CeT8CoCwSYuhejftq9kmag"
(*date "Freitag, 26. September 2014 20:21:21" of item 1 of {«class rkdp» id "CeT8CoCwSYuhejftq9kmag" of application "Aperture"} kann nicht in Typ string umgewandelt werden.*)
变量curVal是
set curVal to item ctr of theList
ctr是当前索引,列表是一个列表......很明显。
到目前为止非工作部分,如果我将>> curVal替换为字符串<<实际的字符串“Freitag,2014年9月26日20:21:21”它的工作原理。
由于我对applescript知之甚少,我认为问题在于“curVal”是列表的一部分,因此
"Freitag, 26. September 2014 20:21:21" of item 1 of {«class rkdp» id "CeT8CoCwSYuhejftq9kmag" of application "Aperture"}
那么我有什么诡计吗?
谢谢!
答案 0 :(得分:0)
不要将日期对象强制转换为字符串。日期对象有一个名为“日期字符串”的属性,您可以使用它。
而不是这样做:
date curVal as string
......这样做:
date string of date curVal
在AppleScript编辑器中单独试用此示例脚本以明确说明:
set theDate to the current date
set theDateString to the date string of theDate
set theTimeString to the time string of theDate
set theDateTimeString to theDateString & space & theTimeString
return theDateTimeString
在AppleScript编辑器窗口底部的“结果”窗格中,您将看到此脚本将当前日期和时间作为字符串返回,如下所示:
"Sunday, September 28, 2014 09:11:36"
ctr是当前索引,列表是一个列表......很明显。
如果你必须解释你的变量名,那么它们的命名很糟糕。我建议你将“ctr”重命名为“theCurrentIndex”,无论列出的是什么“theList”,都要指定。例如:“thePhotoList。”或者您可以为列表使用复数名称,例如“thePhotos”,因为这样您可以执行诸如“在照片中重复照片”等操作。