0

以下のスクリプトで関数 replaceChars を実行しようとしていますが、次のエラーが発生します。

error "Finder got an error: Can’t continue replace_chars." number -1708

意図は、スクリプトをボタンとしてファインダーに追加して、クリックするだけでパスをクリップボードにコピーできるようにすることです。file://localhost/ を追加して、リンクをローカル ネットワーク上のフォルダーへの直接リンクとして電子メールでユーザーと共有するときに使用できるようにします。可能であれば、Windows マシンでも同じようにクリップボードに追加したいと思います。

上記のタスクに関するガイダンスを提供していただければ幸いです。これは、applescript を使用したプログラミングの最初の試みであるため、物事がどのように行われるかについてそれほど知識がありません。

コードは次のとおりです。

on appIsRunning(appName)
    tell application "System Events"
        set isRunning to ((application processes whose (name is equal to appName)) count)
    end tell

    if isRunning is greater than 0 then
        return true
    else
        return false
    end if
end appIsRunning

on replace_chars(this_text, search_string, replacement_string)
    set AppleScript's text item delimiters to the search_string
    set the item_list to every text item of this_text
    set AppleScript's text item delimiters to the replacement_string
    set this_text to the item_list as string
    set AppleScript's text item delimiters to ""
    return this_text
end replace_chars

if appIsRunning("Finder") then
    tell application "Finder"
        set thePath to "file://localhost/" as text
        set theTarget to (target of front Finder window) as text
        set the clipboard to thePath & replace_chars(theTarget, ":", "/") as text
    end tell
end if
4

3 に答える 3

3

replace_charsAppleScript は、Finder のスクリプト辞書でハンドラを探しています。スクリプト内で AS を表示するようにするかmy replace_chars、(おそらくより良い)set the clipboard to thePath & replace_chars(theTarget, ":", "/") as textラインを tell ブロッ​​クから完全に移動することができます。

于 2013-01-16T14:58:05.517 に答える
2

これを 1 行のスクリプトにすることができます。

tell application "Finder" to set the clipboard to "file://localhost" & (target of front Finder window as text)'s POSIX path
于 2013-01-16T16:38:46.263 に答える
0

replace_chars(theTarget, ":", "/")呼び出しをreplace_chars(theTarget, ":", "/") of me次のように置き換えます。

set the clipboard to thePath & replace_chars(theTarget, ":", "/") of me as text
于 2013-01-16T20:49:07.580 に答える