2015-02-11 59 views
0

因此,我試圖在Mac OS Yosemite下使用Automator來創建服務,以允許用戶截取屏幕截圖並將其保存到指定的位置某種「另存爲」對話框。這似乎應該很容易,但由於某種原因,我遇到了困難。截圖組件很容易,使用Automator中的「採取屏幕截圖」操作,但它將它保存到自定義位置,這會導致我出現問題。Apple Automator採取屏幕截圖並保存到用戶指定位置

嘗試了幾種不同的方法之後,似乎最簡單的做法是將屏幕截圖保存到「採取屏幕截圖」操作中的固定目錄/文件名,然後(使用AppleScript)在該目錄中重命名它,並將其移動到用戶指定的目標目錄。所以,我爲我的服務添加了「運行AppleScript」操作。在其中,我使用AppleScript中的choose file name命令生成對話框以選擇文件名/路徑。我試圖從路徑中分割出文件名,這樣我就可以將我保存的文件重命名爲「截圖」,然後將其移至我想要保存的路徑。我可以得到完整的路徑,但是從路徑獲取文件名時遇到問題 - 我已經嘗試了我在線看到的各種建議。在我的屏幕截圖中,顯示的錯誤是來自嘗試做的

我並沒有通過這個流程設置任何方式,所以如果任何人有任何更好的建議,如何做我想做的事情,通過一切手段請告訴我。否則,如果有人能夠告訴我如何從路徑中提取文件名(並且還有一些特殊的方法,您必須使用該字符串來重命名文件),那會很棒!

Screenshot of Automator service

的AppleScript代碼描繪在截圖:

on run {parameters} 
    set thePath to (choose file name with prompt "Where would you like to save your file?") 
    tell application "Finder" 
     display dialog thePath as string 
    end tell 
    set UnixPath to POSIX path of (thePath as text) 
    display dialog UnixPath 
end run 

我試過,但沒有奏效:

set basePath to POSIX path of (parent of (thePath) as string)

感謝檢查出來!

+1

查看腳本編輯器在其「文件」菜單中具有的模板,請嘗試「Droplets => Droplet with settable properties」/它包含的代碼顯示如何獲取文件路徑的名稱/擴展名。另外,請查看Terminal.app窗口中的「man screencapture」。 「screencapture」完成所有真正的工作。 – 2015-02-11 08:59:51

回答

1

一個簡單的方法是使用命令行工具「screencapture」。它有很多選擇,你可以選擇。看到它的手冊頁。這裏有一個例子,你可以直接作爲applescript運行,或者如果你願意的話,你可以把它放在一個applescript的automator動作中。

好運。

set thePath to (choose file name with prompt "Where would you like to save your file?") 
do shell script "screencapture -mx -T1 " & quoted form of (POSIX path of thePath & ".png") 
+0

謝謝,這工作完美!不知道爲什麼蘋果不使用純粹的Automator操作更容易做到這一點,除非我錯過了一些東西。 – 2015-02-11 21:23:47

0

我在Automator中創建了一個文件夾操作。選擇桌面。添加查找Finder對象(搜索:桌面)。添加移動查找器對象並選擇您的首選目標。這會自動移動所有的屏幕截圖。