Quand je cite le nom de la piste entre guillemets, il ajoute la piste à la liste de lecture "parle". Voir exemple:
tell application "iTunes"
duplicate track "Big Ruby Conf 2013 Keynote by Jim Weirich-vIHdhaF2R2w.mp3" to playlist "talks"
end tell
Mais ce que je veux faire est de passer un argument de ligne de commande pour la piste que je veux ajouter à ma liste de lecture, comme suit:
on run argv
tell application "iTunes"
duplicate track argv to playlist "talks"
end tell
end run
Quand je fais cela, j'obtiens cette erreur:
osascript add_track_to_talks.scpt "Big Ruby Conf 2013 Keynote by Jim Weirich-vIHdhaF2R2w.mp3"
add_track_to_talks.scpt: execution error: iTunes got an error: A descriptor type mismatch occurred. (-10001)
Je sais que passer des arguments en ligne de commande fonctionne parce que j'ai écrit quelque chose de simple pour le tester:
on run arg
log "hello: " & arg
end run
Quand je le lance avec cette commande:
osascript log_test.scpt "Blake"
Je reçois cette sortie:
hello: Blake
Des idées sur la bonne façon de passer un nom de piste en argument de ligne de commande?
Réponses:
2 pour la réponse № 1Vous devez référencer un élément d'argv, qui est une liste:
on run argv
tell application "iTunes"
duplicate track (first item of argv) to playlist "talks"
end tell
end run