我從未寫過任何 AppleScript,儘管我自從 2005 年開始使用 Mac,但我從未有過這種需求。
而且我總是覺得這很難理解,因為它的思維模式與我平時做的事情非常不同。
不管怎樣,今天我不得不寫一些,以下是我在一些搜尋、stackoverflowing 和 chatgpting 之後結果:
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 應用程序獲取當前活動窗口的絕對路徑:
POSIX path of (target of front window as alias)
你也可以這樣寫:
tell application "Finder" to get the POSIX path of (target of front window as alias)
這也是一種不錯的方式,在 shell 腳本中使用 osascript -e
將其與其他腳本結合使用,如下所示:
就像我在另一個腳本中所做的:
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
,使用如下結構:
set currentFinderWindowPath to (...)
程式碼如下:
set currentFinderWindowPath to (POSIX path of (target of front window as alias))
然後我們結束 tell application "Finder"
塊,因為我們要 “與” 另一個應用程序 Terminal “交談”:
tell application "Terminal"
do script "cd " & currentFinderWindowPath
activate
end tell
在這種情況下,我們告訴它運行 cd ...
命令,將當前活動文件夾更改為我們從 Finder 中檢索的文件夾。
然後我們運行 activate
命令。
AppleScript 手冊 中說這個命令 “將應用程序帶到前台,如果需要的話會啟動它”。