该变量未定义 - Applescript

时间:2013-03-30 18:13:04

标签: variables applescript

我做的就是制作这个带有注释的应用程序:

tell application "Notes"
if exists note starts with applaunch then
    set LCommands to {"Launch", "Open"}
    repeat with y from 1 to count LCommands
        set applaunch to (item y of LCommands)
        set AppleScript's text item delimiters to applaunch
        set myApp to text items 2 thru 1 of note
        set AppleScript's text item delimiters to {""}
        set myApp to myApp as text
        if y = 1 or y = 2 then
            tell application myApp to launch
        end if
    end repeat
    delete note starts with applaunch
end tell

并返回错误“变量applaunch未定义”,但我定义了它。该怎么办?

2 个答案:

答案 0 :(得分:0)

您在第2行引用applaunch,但直到第5行才定义它。

此外,您的代码示例缺少end if附带的if exists note starts with applaunch then

答案 1 :(得分:0)

您可以尝试以下几点:

set LCommands to {"Launch ", "Open "}

tell application "Notes"
    repeat with aCommand in LCommands
        set aCommand to (contents of aCommand)
        set myNotes to (notes whose name begins with aCommand)
        repeat with aNote in myNotes
            set aNote to contents of aNote
            set noteName to aNote's name
            set AppleScript's text item delimiters to aCommand
            set myApp to text items 2 thru -1 of noteName
            set AppleScript's text item delimiters to {""}
            set myApp to myApp as text

            -- If you need to work with the Note's content as plain text
            --set noteBody to do shell script "echo " & (quoted form of (aNote's body as text)) & " | textutil -stdin -convert txt -stdout "
            my launchDelete(aNote, myApp)
        end repeat
    end repeat
end tell

on launchDelete(theNote, theApp)
    try
        tell application theApp to launch
        tell application "Notes" to delete theNote
    end try
end launchDelete