2014-09-26 2 views
0

Я пытаюсь получить дату изображения из серии изображений и вставить эту дату изображения на другую партию изображений с тем же именем файла (но другим типом файла)AppleScript: Ошибка -1728 при создании даты объекта

Я нашел 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 

СУУ текущий индекс, theList список ... очевидно.

До сих пор для нерабочей части, если я заменяю >> curVal как строку < < с фактической строкой «Freitag, 26. September 2014 20:21:21», это работает.

С моим небольшим знанием AppleScript Я думаю, что проблема в том, что «curVal» является частью списка, следовательно,

"Freitag, 26. September 2014 20:21:21" of item 1 of {«class rkdp» id "CeT8CoCwSYuhejftq9kmag" of application "Aperture"} 

Так есть трюк, который я пропускаю?

Спасибо!

ответ

0

Не принуждайте объект даты в строку. У объектов Date есть свойство, называемое «строка даты», которое вы можете использовать.

Вместо того, чтобы сделать это:

date curVal as string 

... это сделать:

date string of date curVal 

Попробуйте этот пример сценария сам по себе в вашем AppleScript Editor, чтобы понять:

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, вы увидите, что этот скрипт возвращает текущую дату a й раз в виде строки, например, так:

"Sunday, September 28, 2014 09:11:36" 

ЕГО текущий индекс, theList список ... очевидно.

Если вам нужно объяснить имена переменных, они называются плохо. Я рекомендую вам переименовать «ctr» в качестве «theCurrentIndex» и все, что входит в список «theList», указать это. Например: «thePhotoList». Или вы можете использовать множественное имя для своих списков, например «thePhotos», потому что тогда вы можете делать что-то вроде «повторите с thePhoto в фотографиях».

Смежные вопросы