Как добавить double \ к строке, если она содержит скобки (AppleScript) - PullRequest
0 голосов
/ 08 февраля 2019

Я написал AppleScript, который получает текст от Genius и добавляет его к моим песням iTunes.

По сути, есть цикл, который просматривает мои песни, которые были недавно добавлены в iTunes, для каждой песни, а затемидет к гению и пытается найти эту песню, если она не может найти песню, то song_name и song_artist помещаются в переменную с именем songNotAva.То, как это помещено в переменную: set songNotAva to songNotAva & {"- ", song_name, " - ", song_artist & return}.И затем, когда цикл «получить все тексты песен» завершен, если songNotAva не пусто, он выполняет следующий код:

if songNotAva is not equal to {} then
    do shell script "> $HOME/Desktop/songs.txt"
    do shell script "echo " & songNotAva & ">> $HOME/Desktop/songs.txt"
end if

, который выводит неудавшиеся песни в текстовый файл сэтот формат:

- song_name - song_artist
- song_name - song_artist
- song_name - song_artist

(song_name и song_artist будут отражать песню, которая потерпела неудачу)

Она прекрасно работает и выдает именно то, что я ожидаю, но проблемав том, что некоторые из названий песен в iTunes содержат скобки (), и если вы попытаетесь вывести эти скобки с помощью оболочки, это приведет к ошибке и ничего не выведет (если у вас нет обратной косой черты перед скобками вроде \\(\\) тогда он будет работать нормально)

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

Мой вопрос: как я могу проверить, содержит ли song_title какие-либо скобки, и если да, то как я могу добавить обратную косую черту перед скобками?

1 Ответ

0 голосов
/ 08 февраля 2019

songNotAva - это список, вы должны использовать цикл и экранировать каждую строку с помощью quoted form of.

Проверка на пустой список избыточна.Если список пуст, цикл будет пропущен.

set songNotAva to {"7 rings(example bracket)"}

do shell script "> $HOME/Desktop/songs.txt"
repeat with aSong in songNotAva
    do shell script "echo " & quoted form of aSong & " >> $HOME/Desktop/songs.txt"
end repeat
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...