I want to make a LaunchBar script that displays in a dialog the path of a file or folder that's chosen in the first pane and then "dropped" on a script. But I can't make it work.
I've got a couple of working scripts that almost do what I want:
Return contents of first pane (used with a shortcut):
tell application "LaunchBar"
set x to selection as text
return x
end tell
Display text written in the first pane and "dropped" on the script:
on handle_string(textFromLaunchbar)
tell application "LaunchBar"
display in large type textFromLaunchbar
end tell
end handle_string
The latter uses the handle_string() handler but I can't quite make the open() handler work for files and folders:
from the LaunchBar manual:
http://www.obdev.at/resources/launchbar/help/index.php?chapter=SendingItems
Sending items to AppleScripts
To pass a selected file, URL or text to an AppleScript, press the Tab key to trigger the “Send to…” action, select the desired AppleScript and press Return. Files will be passed to the script’s open() handler, URLs will be passed to the handle_string() handler.
Best Answer
The
open()
handler gets passed analias
(which is a kind of a pointer to a file or folder). You can then simply convert the alias to text, but it will show you the path with colons as separators (e.g. "Macintosh HD:Users:Username:Documents:Folder:").Use
POSIX path of
to convert it to a UNIX-style path with "/" separators, and if you want to paste it into Terminal, especially if the path has spaces in it, you should usequoted form of
to properly enclose it in quotes.The following script works with both folders and files for me, when an item is passed to it via LaunchBar: