3

入力として選択したテキストから複数のタブを開くオートマトンアクションを作成しようとしたときに、しばらくの間解決できなかったAppleScriptの問題に遭遇しました。これには答えが含まれています。「任意のアプリケーション」オートマトンアクションで選択された「テキスト」を受信するための「入力」でデータを処理する方法に関するドキュメントが見つからなかったため、ここに投稿します。すべてはファイル用です。すでにリストとして入っています。

AppleScriptアクションを入れると、次のようになります。

on run {input, parameters}

ここでの問題は、入力がリスト形式ではなく、それを使って何かをしようとすると、スクリプトが壊れたり、エラーがスローされたりすることです。つまり、私はできません:

        repeat with URL in input
        set this_URL to URL

では、選択したテキストのリストをアイテムのリストとしてどのように扱うことができますか?

4

3 に答える 3

3

解決策は、最初に入力を文字列として扱い、次にすべての段落を分解することです。

on run {input, parameters}

set inputText to input as string
set URL_list to every paragraph of inputText

「のすべての段落」を実行する前に、最初に入力を「文字列として」処理しないと、機能しません。

これが作業終了スクリプトです。「some_url」を独自のものに置き換えてください。エディターで数行のテキストを選択し、それぞれを新しいサファリタブで開く固定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/」とthis_URLを使用して上記のサービスを持っていたとしましょう

6318162 
6318163 
6318164

これで、サービスをクリックして「StackOverflow-質問の表示」サービスを選択すると、新しいサファリタブにそれぞれが追加されて開きます。私の場合、サーバー内の複数のDNSエントリがまだ有効であることを確認し、whoisルックアップを実行する必要がありました。

于 2011-06-11T19:48:13.313 に答える
2

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
于 2014-02-25T22:50:11.603 に答える
0

Hanzaplastiqueが言うように、Automator内のAppleScriptの場合、そのためのアクションがあるため、SafariAppleScriptは必要ありません。次のアクションを使用します。

  • テキストからURLを抽出する(実際には「テキストからデータを抽出する」アクション)
  • AppleScriptを実行する
  • Webページを表示する

これを[サービス]メニューに追加されたワークフローとして使用して、電子メールで選択したテキストを右クリックし、Safariタブで複数のURLを開くことができるようにします。

特に、サーバー/ 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

'returnselectedFiles'が必要であることがわかりました。常に神秘的な(私にとって)テキスト区切り文字は必要ないかもしれず、単一のURLだけを引き出した以前のバージョンから来ているかもしれません。

于 2020-08-28T11:51:32.357 に答える