AppleScript 怎樣自動獲取自身所在的文件夾路徑?

2015-09-25 11:52:24 +08:00
 wolf1981

小小白,在弄一個 AppleScript 使用 root 身份執行一個 shell script 遇到了以下問題

文件結構如下:
/Users/apple/myscript/
myApplescript.app
bash.sh
Config.plist

其中 Config.plist 要複製到 /private/var/db/dslocal/nodes/Default/computergroups
我想把 bash.sh 與 Config.plist 文件放到 myApplescript.app/Contents/Resources/Scripts 裡面(即是把 Applescript 保存爲 app 格式后再把另外 2 個文件放到 app 裡面進行調用)

而 myApplescript.app 的路徑不確定,可能被放在不同文件夾,怎麼獲取 App 其當前路徑?

do shell script “ sh 怎麼自動得到 App 當前路徑?/Contents/Resources/Scripts/bash.sh ” user name "root" password "rootpassword" with administrator privileges

set TargetPath to “ /private/var/db/dslocal/nodes/Default/computergroups ”
do shell script “ cp – r 怎麼自動得到 App 當前路徑?/Contents/Resources/Scripts/Config.plist ” & TargetPath user name "root" password "rootpassword" with administrator privileges

AppleScript 該怎麼改?大神幫忙看看,謝謝

1828 次点击
所在节点    Apple
5 条回复
wolf1981
2015-09-25 13:53:13 +08:00
anyone can help?
johnnyb
2015-09-25 14:46:49 +08:00
通过

```applescript
set scptPath to POSIX path of ((path to me) as Unicode text)
```

可获得当前 .applescript 的路径。如果你把 .applescript 编译成 .app 放在

`/path/to/YourBundle.app`

那么前面语句得到的是

`/path/to/YourBundle.app/Contents/Resources/Scripts/main.scpt`
wolf1981
2015-09-25 16:53:00 +08:00
@johnnyb thanks

怎樣只得到 /path/to/YourBundle.app/Contents/Resources/Scripts/ 而不要有 main.scpt 這個?
johnnyb
2015-09-25 18:09:54 +08:00
set dirPath to do shell script "echo $(dirname " & quoted form of POSIX path of scptPath & ")"
wolf1981
2015-09-26 13:16:39 +08:00
@johnnyb 運行成功了, thank you for your time again!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/223572

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX