2014-03-05 32 views
2

因此,我正在研究將主文件夾複製到裝入的共享驅動器文件夾的腳本。但我收到以下錯誤:嘗試將主文件夾複製到共享驅動器時出現AppleScript錯誤

"Handler can't handle objects of this class number -10010"

這是我想到的代碼,下面是我在這裏看到的其他代碼的示例。我猜測這是我告訴finder複製的方式。

set vserver to ("/Volumes/sharedfolder") 
set source to ("/Users/user") 

tell application "Finder" 
    duplicate source to vserver 
end tell 

我該怎麼寫呢?

我也試着運行一個布爾測試來查看Finder是否看到共享文件夾或我的主文件夾,並且它隱瞞錯誤。 (但只有一個假時,它應返回2)

tell application "Finder" 
    setaBoolean1 to get (exists vserver) 
    setaBoolean1 to get (exists source) 

end tell 
+0

通知,你有'重複源於vserver':網絡瀏覽器中是否存在拼寫錯誤,或者它是否在原始腳本中拼寫爲「souce」? – NSGod

+0

這只是一個輸入錯誤 –

+0

與問題無關,但與您正在做的事情有關:我建議在'do shell腳本「rsync -azv」&source&「」&vserver'中輸入,但沒有NSGod的「POSIX文件」建議(因爲它是一個終端命令並使用POSIX,而不是Finder),而不是Finder塊。這將確保所有文件都被複制,並保持許可(-a表示存檔)。您甚至可以多次運行它以確保所有內容都被複制,因爲它會恢復中斷傳輸。 –

回答

3
set vserver to ("/Volumes/sharedfolder") 

的線的上方設置可變vserver到由"/Volumes/sharedfolder"一個string對象。同樣,set source to "/Users/user"行將source設置爲包含"/Users/user"string對象。請注意,字符串不是Finder在告訴它重複項目時所期待的內容。

告訴應用程序Finder行基本上試圖告訴Finder複製一個string到另一個string,它不知道如何做(因此Handler can't handle objects of this class消息)。

您需要做的是不創建字符串,而是創建某種類型的文件系統對這些文件夾的引用,以便Finder知道如何處理它們。

有許多方法可以做到這一點,但我發現,工作(使用相同的POSIX風格的路徑格式)的方法如下:在你原來的示例腳本

set vserver to POSIX file "/Volumes/sharedfolder" 
set source to POSIX file "/Users/user" 

tell application "Finder" 
    duplicate source to vserver 
end tell 
+0

變暖。收到另一個錯誤「操作無法完成」。編號-36這可能是服務器問題。運行代碼後,我立即從掛載的服務器斷開連接。 –

+0

忘記最後的評論,這完美的作品。我只是在工作中遇到連接問題。 –

相關問題