/

通過示例學習 AppleScript,第 1 集

通過示例學習 AppleScript,第 1 集

我從未寫過任何 AppleScript,儘管我自從 2005 年開始使用 Mac,但我從未有過這種需求。

而且我總是覺得這很難理解,因為它的思維模式與我平時做的事情非常不同。

不管怎樣,今天我不得不寫一些,以下是我在一些搜尋、stackoverflowing 和 chatgpting 之後結果:

1
2
3
4
5
6
7
8
tell application "Finder"
set currentFinderWindowPath to (POSIX path of (target of front window as alias))
end tell

tell application "Terminal"
do script "cd " & currentFinderWindowPath
activate
end tell

我將描述一下這個腳本的功能,這樣以後我就可以記住了。

首先,我們要求 Finder 應用程序獲取當前活動窗口的絕對路徑:

1
POSIX path of (target of front window as alias)

你也可以這樣寫:

1
tell application "Finder" to get the POSIX path of (target of front window as alias)

這也是一種不錯的方式,在 shell 腳本中使用 osascript -e 將其與其他腳本結合使用,如下所示:

就像我在另一個腳本中所做的:

1
2
finderPath=`osascript -e 'tell application "Finder" to get the POSIX path of (target of front window as alias)'`
open -n -b "com.microsoft.VSCode" --args "$finderPath"

無論如何,我們將結果賦值給變量 currentFinderWindowPath,使用如下結構:

1
set currentFinderWindowPath to (...)

程式碼如下:

1
set currentFinderWindowPath to (POSIX path of (target of front window as alias))

然後我們結束 tell application "Finder" 塊,因為我們要 “與” 另一個應用程序 Terminal “交談”:

1
2
3
4
tell application "Terminal"
do script "cd " & currentFinderWindowPath
activate
end tell

在這種情況下,我們告訴它運行 cd ... 命令,將當前活動文件夾更改為我們從 Finder 中檢索的文件夾。

然後我們運行 activate 命令。

AppleScript 手冊 中說這個命令 “將應用程序帶到前台,如果需要的話會啟動它”。