Не видя ваш код относительно скопированных элементов Finder, трудно дать вам точное решение. Вот одно из возможных решений. Следующий код AppleScript примет выбранные в данный момент элементы поиска и установит в буфер обмена полные пути к файлам этих выбранных элементов поиска в виде списка.
tell application "Finder" to set selectedFiles to selection as alias list
if selectedFiles is {} then return
set filePaths to {}
repeat with thisFile in selectedFiles
set end of filePaths to POSIX path of thisFile
end repeat
set text item delimiters to linefeed
set the clipboard to (filePaths as text)
OR
Поскольку ваш процесс заключается в копировании выбранных файлов поиска в буфер обмена с помощью сочетания клавиш cmd + c, вы можете использовать следующий AppleScript-код в Automator.app и сохранить его в качестве службы. В System Preferences.app вы можете назначить сочетание клавиш для вашего нового сервиса.
Прежде чем использовать сочетание клавиш cmd + c для копирования элементов Finder, вы должны запустить только что созданную службу, чтобы сохранить пути к файлам, чтобы вы могли получить их позже.
Короче говоря, этот код AppleScript отобразит диалоговое окно с двумя вариантами.
1) Записать пути файлов выбранных в данный момент файлов поиска во временный текстовый файл (который может быть получен при необходимости)
2) Установите в буфере обмена пути к файлам, извлекая эту информацию из временного файла
tell application "Finder" to set selectedFiles to selection as alias list
if selectedFiles is {} then return
set filePaths to {}
repeat with thisFile in selectedFiles
set end of filePaths to POSIX path of thisFile
end repeat
set text item delimiters to linefeed
set filePaths to (filePaths as text)
set readOrWrite to {"Write Selected Files' File Path To Temp", "Set Clipboard To The File Paths"}
activate
set theChoice to (choose from list readOrWrite ¬
with title "CHOOSE YOUR OPTION PLEASE" with prompt ¬
"Write File Paths Or Set Clipboard To File Paths?" default items 1 ¬
OK button name "DO IT" cancel button name "Cancel") as string
if theChoice is "Write Selected Files' File Path To Temp" then
writeToFile(filePaths)
else if theChoice is "Set Clipboard To The File Paths" then
readFile()
else
return
end if
on writeToFile(filePaths)
set theFile to "/tmp/File_Paths.txt"
set theText to filePaths
try
set writeToFile to open for access theFile with write permission
set eof writeToFile to 0
write theText & linefeed to writeToFile as text starting at eof
close access theFile
on error errMsg number errNum
close access theFile
set writeToFile to open for access theFile with write permission
set eof writeToFile to 0
write theText & linefeed to writeToFile as text starting at eof
close access theFile
end try
end writeToFile
on readFile()
set theFile to "/tmp/File_Paths.txt"
set the clipboard to (read theFile)
end readFile
После сохранения информации о пути к файлу вы сможете скопировать элементы поиска с помощью сочетания клавиш cmd + c и делать все, что захотите, со скопированными файлами поиска.
Затем вернитесь и снова запустите службу, чтобы скопировать пути к файлам в буфер обмена