在尝试制作一个自动机操作,从所选文本中打开多个选项卡作为输入时,我遇到了一个AppleScript问题,我暂时无法解决。这包括答案,我在这里发布这个,因为我无法在“任何应用程序”自动机操作中找到接收所选“文本”的“输入”中如何处理数据的文档,一切都是针对哪些文件已列入清单。
当把一个AppleScript动作放入时,你得到:
on run {input, parameters}
这里的问题是输入不是列表格式,并且尝试用它做任何事情会破坏脚本或引发错误。即我做不到:
repeat with URL in input
set this_URL to URL
那么如何将所选文本列表视为项目列表呢?
答案 0 :(得分:3)
解决方案首先将输入视为字符串,然后拆分每个段落。
on run {input, parameters}
set inputText to input as string
set URL_list to every paragraph of inputText
在执行“每个段落”之前,首先不将输入“作为字符串”处理,否则它将无效。
这是最终的工作脚本,用你自己的“some_url”替换。您将能够在编辑器中选择多行文本,并将每个文本作为参数添加到新的Safari选项卡中的固定URL开头。这可以通过在URL上为每个行分隔多个参数来扩展。
on run {input, parameters}
set inputText to input as string
set URL_list to every paragraph of inputText
tell application "Safari"
activate
repeat with URL in URL_list
set this_URL to URL
# extra processing of URL could be done here for multiple params
my new_tab()
set tab_URL to "http://some_url.com?data=" & this_URL
set the URL of document 1 to tab_URL
end repeat
end tell
return input
end run
on new_tab()
tell application "Safari" to activate
tell application "System Events"
tell process "Safari"
click menu item "New Tab" of ¬
menu "File" of menu bar 1
end tell
end tell
end new_tab
举个例子说你有了这个列表,并使用“http://stackoverflow.com/posts/”&amp ;;提供上述服务。 this_URL
6318162
6318163
6318164
您现在可以选择它们点击服务并选择“StackOverflow - 查看问题”服务,它将附加并在新的Safari选项卡中打开每个服务。在我的情况下,我需要验证我们的服务器中的多个dns条目仍然有效并执行一堆whois查找。
答案 1 :(得分:1)
(抱歉醒来一个老帖子) 我一直在寻找相同的东西,仅用于从Automator到AppleScript的输入文件。 ddowns技巧不起作用,但最终使用它,希望它对寻找解决我遇到的同一问题的人有帮助:
on run {input, parameters}
-- create empty list
set selectedFiles to {}
-- add each list item to the empty list
repeat with i in input
copy (POSIX path of i) to end of selectedFiles
end repeat
-- show each item (just for testing purposes of course)
repeat with currentFile in selectedFiles
display dialog currentFile as text
end repeat
end run
答案 2 :(得分:0)
正如Hanzaplastique所说,对于Automator中的AppleScript,您不需要Safari AppleScript,因为有一个操作。我使用以下操作:
我将其用作添加到“服务”菜单中的工作流,以便可以右键单击电子邮件中的选定文本,并在Safari选项卡中打开多个URL。
特别是,我通过电子邮件获得了Server / WordPress更新,但是URL只是域的顶层,我想跳到WordPress的插件页面。因此,我的AppleScript(感谢Hanzaplastique)是:
on run {input, parameters}
set AppleScript's text item delimiters to {return & linefeed, return, linefeed, character id 8233, character id 8232}
-- create empty list
set selectedFiles to {}
-- add each list item to the empty list
repeat with i in input
set AppleScript's text item delimiters to {" "}
set i to i & "/wp-admin/plugins.php"
copy i to end of selectedFiles
end repeat
return selectedFiles
end run
我发现我需要“返回selectedFiles”。对我而言,永远都是神秘的文本定界符可能不是必需的,并且来自以前的版本,后者仅提取了一个URL。