Установить список для вывода сценария оболочки в AppleScript

У меня есть сценарий оболочки, который выводит имена файлов (по одному в строке). Я хочу поместить этот вывод в список в AppleScript.

Как я могу это сделать?

Бонусные баллы за то, как затем превратить эти строки имени файла в файловые объекты.

РЕДАКТИРОВАТЬ:

При попытке это:

set theFiles to {}
repeat with i from 1 to count of filenames
    set end of theFiles to (POSIX file (item i of filenames))
end repeat

Я получаю это:

error "Finder got an error: Can’t get POSIX file \"/path/to/file\"." number -1728 from file "Macintosh HD:path:to:file"

РЕДАКТИРОВАТЬ-2:

Оказывается, поисковик не знает о файле, который создается после запуска оператора «tell». Как обновить его или сообщить о новом файле?

РЕДАКТИРОВАТЬ-3:

Это сработало (обратите внимание на добавление «мой»):

set theFiles to {}
repeat with i from 1 to count of filenames
    set end of theFiles to (my POSIX file (item i of filenames))
end repeat

person Jeremy Cantrell    schedule 23.06.2010    source источник
comment
Это ошибка Finder. Finder не знает эту команду и поэтому выдает ошибку. Уберите эту команду из своего блока подсказок Finder. Это обычная команда AppleScript, а не команда Finder.   -  person regulus6633    schedule 25.06.2010


Ответы (1)


set myFilenamesList to paragraphs of (do shell script "path/to/shell/script")
set firstFileObject to POSIX File (item 1 of myFilenamesList)

Когда у вас есть список, вы используете повторяющийся цикл, чтобы перебирать список и что-то делать с элементами в списке. Например, если вам нужен список файловых объектов, вы можете сделать это.

set fileObjectsList to {}
repeat with i from 1 to count of myFilenamesList
set end of fileObjectsList to POSIX File (item i of myFilenamesList)
end
return fileObjectsList

Конечно, в этом нет особого смысла, потому что, как только у вас есть файловые объекты в списке, вам нужно будет повторить этот список, чтобы сделать что-то с этими объектами... таким образом, вы будете повторять список 2 раза, когда 1 раза, вероятно, будет достаточно. Так что я бы сделал что-то вроде этого вместо этого...

repeat with i from 1 to count of myFilenamesList
set thisFileObject to POSIX File (item i of myFilenamesList)
-- do something with the file object "thisFileObject"
end
person regulus6633    schedule 23.06.2010
comment
Как мне создать файловые объекты для всех имен файлов. Мне нужно это в объекте списка. - person Jeremy Cantrell; 24.06.2010