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
,也就是说,如果您不打算使用任何其他输入列表项。
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
,也就是说,如果您不打算使用任何其他输入列表项。