Установить список для вывода сценария оболочки в AppleScript - PullRequest
0 голосов
/ 23 июня 2010

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

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

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

EDIT:

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

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"

EDIT-2:

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

EDIT-3:

Это сработало (обратите внимание на добавление "my"):

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

1 Ответ

2 голосов
/ 23 июня 2010
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...