Ошибка при замене символов applescript

Я пытаюсь создать скрипт, который выполняет исполняемый файл Jar в виде приложения applescript. Я не очень разбираюсь в яблочном скрипте, поэтому в основном использовал онлайн-фрагменты. Первая проблема, с которой я столкнулся, заключалась в том, что каталог автоматически форматируется с использованием «:» вместо косой черты (например, «usr: bin» вместо «usr/bin»), поэтому я нашел что-то, что должно заменить : на /. Однако это каждый раз выдает ошибку.

Я мало что нашел о том, как исправить мою ошибку, и то, что я нашел, было очень специфичным для этих случаев и не имело для меня особого смысла.

Это мой код:

tell application "Finder"
    set current_path to container of (path to me) as alias
end tell

set AppleScript's text item delimiters to ":"
set currPath to text items of current_path
set AppleScript's text item delimiters to "/"
set current_path to currPath as string
set AppleScript's text item delimiters to {""}
currPath

tell application "Terminal"
    activate
    set currentTab to do script ("cd " & current_path)
    set currentTab to do script ("java -jar Inoisulcnoc Pre-Alpha 2")
end tell

Ошибка, которую я получаю каждый раз, говорит:

ошибка "Не удается получить каждый текстовый элемент псевдонима \"Macintosh HD:Users:knotsnappy:Desktop:Inoisulcnoc Pre-Alpha 2:\"." номер -1728 из каждыйтекстовый элемент из псевдоним "Macintosh HD: Пользователи: knotsnappy: Рабочий стол: Inoisulcnoc Pre-Alpha 2:"

Как я могу это исправить?

Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
143
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы захотите изменить стандартный путь на путь POSIX.

tell application "Finder"
    set current_path to (POSIX path of (container of (path to me) as alias))
end tell

tell application "Terminal"
    activate
    set currentTab to do script ("cd " & current_path)
    set currentTab to do script ("java -jar Inoisulcnoc Pre-Alpha 2")
end tell

Разделители и т. д. не нужны, если у вас правильный синтаксис.

Спасибо, это полностью решило эту проблему. единственная проблема, с которой я столкнулся сейчас, заключается в том, что это не учитывает наличие пробелов в каталоге, поэтому, если пользователь поместит его, например, в папку с именем «Программа Inoisulcnoc», он будет искать только папку с именем «Inoisulcnoc». Я знаю, что это не был мой первоначальный вопрос, но у вас случайно нет решения для этого?

Knot Snappy 08.04.2019 04:03

Неважно, все исправлено: скажите приложению «Finder» установить current_path на (путь POSIX (контейнер (путь ко мне) как псевдоним)) end скажите установить разделители текстовых элементов AppleScript на « » установить currPath на текстовые элементы current_path установить текст AppleScript разделители элементов в "\\" установить current_path в currPath как строку установить разделители текстовых элементов AppleScript в {""} currPath сообщить приложению "Терминал" активировать установить currentTab для выполнения скрипта ("cd " & current_path & "; java -jar " & current_path & "Inoisulcnoc.jar") конец сообщения

Knot Snappy 08.04.2019 04:05

Пожалуйста! Чтобы разместить пути, которые могут содержать пробелы, используйте & quoted form of current_path.

l'L'l 08.04.2019 04:09

Другие вопросы по теме