Data:
~ / Desktop / Foo.scpt contiene:
(POSIX path of (path to me)) as text
Che restituisce:
/Users/[username]/Desktop/Foo.scpt
Come ottengo il percorso /users/[username]/Desktop/
e il nome file Foo.scpt
come pezzi singoli?
Basta chiedere a Finder che sa come farlo :)
tell application "Finder"
set parentpath to POSIX path of (parent of (path to me) as string)
set filename to name of (path to me)
display dialog parentpath
display dialog filename
end tell
Questo dovrebbe funzionare:
-- This script returns the full path to the directory that this script is running in
-- get the full path to be split
set pathToMe to POSIX path of (path to me as text)
-- get the path to the directory
set script1 to "dirname '" & pathToMe & "'"
set dirPath to do shell script script1
-- get the file name
set script2 to "basename '" & pathToMe & "'"
set fileName to do shell script script2
-- display the results
display dialog "Directory Path: " & dirPath & return & return & "File Name: " & fileName
Un'altra opzione è usare i delimitatori di elementi di testo:
set text item delimiters to "/"
POSIX path of (path to me)
text item -1 of result -- "Untitled.scpt"
Se il percorso può terminare con una barra, puoi utilizzare un gestore come questo:
on basename(x)
if x is "/" then return "/"
if item -1 of x is "/" then set x to text 1 thru -2 of x
set text item delimiters to "/"
text item -1 of x
end basename
basename("/dir1/dir2/file.txt") -- "file.txt"
basename("/dir1/") -- "dir1"
basename("/dir1/dir2/") -- "dir2"
basename("/dir1/dir2") -- "dir2"
basename("/") -- "/"
Si noti che text item delimiters
è una proprietà dell'oggetto AppleScript (non locale per la funzione), ma per quanto ne so, non è necessario ripristinare la proprietà dei delimitatori degli elementi di testo se non si fa affidamento su di esso più avanti nello script.
Leggi altre domande sui tag mountain-lion applescript