Ich habe es für zwei Tage gewesen. Also, mit Automator und Applescript, muss ich ein Volume (oder Volumes) scannen und einen Pfad zu jeder Datei, den Dateinamen plus Erweiterung, AssetID (wenn es eine gibt) und geben Sie jeden Teil in eine Komma getrennte CSV-Datei.Mit Applescript ein Volume scannen, ziehen Sie den Pfad, Dateiname und eine Nummer und geben Sie die Ergebnisse csv
Bis jetzt habe ich die Automator-Aktionen aussortiert und die meisten Applescript-Teile, aber ich bin am Ende meines Wissens. Die Pfade und Dateinamen funktionieren, aber das Extrahieren der Asset-ID (falls vorhanden) ist das Problem. Nicht jede Datei hat eine AssetID (und diejenigen, an denen ich nicht interessiert bin). Die assetID ist immer eine 10-stellige Zahl am Ende der Datei, der ein Unterstrich ("_") vorangestellt ist, so - afilename_1234567890.ext. Wie es jetzt ist, zeigt das Skript die Asset-IDs der Dateien, die es verarbeitet, aber sobald es eine Datei ohne ID erreicht, sehe ich den folgenden Fehler, "Die Aktion" AppleScript ausführen "hat einen Fehler festgestellt: Kann nicht erhalten Text 1 bis -1 von "".“Etwas munged irgendwo bekommen.
Jede mögliche Hilfe geschätzt wird stark würde.
Das Skript so weit ...
auf Laufe {Eingabe, Parameter}
-- save delimiters to restore old settings
set savedDelimiters to AppleScript's text item delimiters
-- set delimiters to delimiter to be used
set AppleScript's text item delimiters to "/"
repeat with aPath in input
-- set a variable to contain the "/" (POSIX) version of the files path
set filesPath to POSIX path of aPath
-- get the file name
set fileName to last text item of filesPath
-- get the file name without the extension
set thePrefix to text 1 thru ((offset of "." in fileName) - 1) of fileName
-- get the asset ID, if there is one
set assetID to rightStringFromRight(thePrefix, "_")
display dialog assetID
if (class of assetID) is integer then
-- get the path only
set pathOnly to ((text items 1 thru -2 of (get POSIX path of aPath)) as Unicode text) & "/"
-- output the path only, file name and asset ID to a comma delimited csv file
display dialog assetID
end if
end repeat
-- restore the old delimiter setting
set AppleScript's text item delimiters to savedDelimiters
Endlauf
auf rightStringFromRight (str, del)
local str, del, oldTIDs
set oldTIDs to AppleScript's text item delimiters
try
set str to str as string
if str does not contain del then return str
set AppleScript's text item delimiters to del
set str to str's last text item
set AppleScript's text item delimiters to oldTIDs
return str
on error eMsg number eNum
set AppleScript's text item delimiters to oldTIDs
error "Can't rightStringFromRight: " & eMsg number eNum
end try
Ende rightStringFromRight
auf is_number (number_string) Satz number_string versuchen als Nummer number_string wahr auf Fehler zurück return false Ende versuchen Ende is_number