AppleScript 检查输入中的字符串值

AppleScript check for string value in input

applescript 的新手,这张小支票让我抓狂。

我想检查脚本的输入是否包含 "mob" 的子字符串。
如果我用 mob1234 创建一个变量,它可以工作并且 returns true.

on run {input, parameters}
    set testString to "mob1234"
    display dialog {"MOB" is in testString}

    return input
end run

如果我将其更改为使用输入,并将输入设置为 mob1234,它会失败并返回 false

on run {input, parameters}
    set testString to input
    display dialog {"MOB" is in testString}

    return input
end run

我不知道。

你没有说你是如何调用你的脚本的。如果您通过 Automator 调用脚本,请注意在此模式下输入的是列表,而不是字符串,因此这应该有效:

set testString to item 1 of input

看来iayork的回答是对的,这里跟进一下:

-- When this is saved as compiled script one can call it from Terminal like: 
-- `osascript scriptName.scpt MOBstringArg1 arg2`

on run {input, parameters}
    if (input's class is list) then set input to (item 1 of input) as text

    if "MOB" is in input then
        display notification "FOUND MOB" with title "In: " & input
    end if

    return input
end run

请参阅 iayork 关于使用 osascript 调用脚本的评论。

您也可以在将输入分配给 testString 时直接将输入强制转换为文本:set testString to input as text,也就是说,如果您不打算使用任何其他输入列表项。