Вот что я сделал и работает для меня в macOS High Sierra :
- В Терминал :
touch numb2csv; open -e numb2csv; chmod +x numb2csv
• При этом создается пустой текст ASCII файл с именем numb2csv .
• По умолчанию открывается numb2csv в TextEdit .
• Делает исполняемый файл numb2csv .
Скопируйте и вставьте
пример AppleScript код , как показано ниже, в открытый
numb2csv файл . Сохраните и закройте файл
numb2csv . В
Терминал выполнил исполняемый файл
numb2csv файл , например:
./numb2csv "$HOME/Documents"
- Это создало CSV файл с тем же именем как Numbers document в моей папке Documents , не пересекающей вложенные папки .
Пример AppleScript код :
#!/usr/bin/osascript
on run argv
set theFilePath to POSIX file (item 1 of argv)
set theFolder to theFilePath as alias
tell application "System Events" to set theDocs to theFolder's items whose name extension = "numbers"
repeat with aDoc in theDocs
set docName to aDoc's name as text
set exportName to (theFolder as text) & docName
set exportName to exportName's text 1 thru -8
set exportName to (exportName & "csv")
tell application "Numbers"
launch
open aDoc
repeat until exists document 1
delay 3
end repeat
tell front document
export to file exportName as CSV
close
end tell
end tell
end repeat
tell application "Numbers" to quit
end run
- ПРИМЕЧАНИЕ: As кодированный , при этом будет перезаписан существующий CSV файл с тем же именем, что и каждый чисел файл обработан, если они уже существует. Дополнительное кодирование требуется, если вы не хотите перезаписывать существующие файлы
Если вы получаете Ошибка сценария :
Числа получили ошибку: документ «имя» не может быть экспортирован как «имя». У вас нет разрешения.
По моему опыту, Числа документ не были полностью открыты до экспорта и что увеличение значение команды delay
решает эту проблему. Это, конечно, при условии, что на самом деле у пользователя есть права на запись в папке цель Номера документы существует.
Или можно ввести обработчик ошибок в блоке tell front document
, который, если моя теория верна, что целевой документ не был полностью загружен перед экспортом, даст дополнительное время, например:
Изменение:
tell front document
export to file exportName as CSV
close
end tell
Кому:
tell front document
try
export to file exportName as CSV
close
on error
delay 3
export to file exportName as CSV
close
end try
end tell
Примечание: основной пример AppleScript код как раз и не содержит обработки ошибок в зависимости от ситуации. Пользователь должен добавить любую обработку ошибок , которая может быть уместной, необходимой или желаемой. Взгляните на оператор try и error оператор в Руководство по языку AppleScript . См. Также Работа с ошибками . См. Включенный пример непосредственно выше.