我从http://www.dougscripts.com/itunes/得到提示以提出以下代码。但它需要更多的改进。
tell application "iTunes" if player state is playing then set sel to current track as list else if selection is not {} then set sel to selection end if set noSong to "" set summaryFile to ((path to desktop as Unicode text) & "songs2.txt") set ff to open for access file summaryFile with write permission repeat with this_track in sel set the_lyrics to this_track's lyrics set {art, nom} to {this_track's artist, this_track's name} if the_lyrics is not "" then tell application "TextEdit" activate set myVar to art & nom & the_lyrics write myVar to ff starting at eof end tell else beep end if end repeat end tell
答案 0 :(得分:2)
以下是我用来管理将数据写入文本文件的两个子程序:
on WriteLog(the_text)
set this_story to the_text
set this_file to (((path to desktop folder) as text) & "MY STORY")
my write_to_file(this_story, this_file, true)
end WriteLog
on write_to_file(this_data, target_file, append_data)
try
set the target_file to the target_file as text
set the open_target_file to ¬
open for access file target_file with write permission
if append_data is false then ¬
set eof of the open_target_file to 0
write this_data to the open_target_file starting at eof
close access the open_target_file
return true
on error
try
close access file target_file
end try
return false
end try
end write_to_file
请注意,write_to_file()是来自Essential Subroutines中自己的旧Applescript网站的Apple代码。 WriteToLog()是我自己的子程序,只用一个参数写入与write_to_file的接口,即文本本身。加盐调味。要重写脚本可以容纳上面的子程序,我会这样做:
tell application "iTunes"
if player state is playing then
set sel to current track as list
else if selection is not {} then
set sel to selection
end if
set noSong to ""
repeat with this_track in sel
set the_lyrics to this_track's lyrics
set {art, nom} to {this_track's artist, this_track's name}
if the_lyrics is not "" then
set myVar to art & nom & the_lyrics
my WriteLog(myVar)
else
beep
end if
end repeat
end tell
答案 1 :(得分:1)
你只是有一些事情超出范围所有开幕结束和文本文件的写作必须在iTunes之外完成,并且不需要texedit
set summaryFile to ((path to desktop as Unicode text) & "songs2.txt")
try
close access (summaryFile as alias) -- close the file if its open alreayd
end try
set ff to open for access file summaryFile with write permission
tell application "iTunes"
if player state is playing then
set sel to current track as list
else if selection is not {} then
set sel to selection
end if
set noSong to ""
repeat with this_track in sel
set the_lyrics to lyrics of this_track
set {art, nom} to {artist of this_track, name of this_track}
if the_lyrics is not "" then
tell me
set myVar to art & nom & the_lyrics
write myVar to ff starting at eof
end tell
else
beep
end if
end repeat
end tell
close access (summaryFile as alias)