2016-05-19 20 views
0

Ich versuche, alle Dateien von einem Ordner auf einen anderen zu kopieren. Dies funktioniert nur, wenn ich den vollständigen Pfad einschließlich des Namens des Laufwerks und des Benutzernamens angeben.AppleScript kopiert Dateien von a nach b mit jedem Benutzernamen

Dies funktioniert:

tell application "Finder" 
set a to folder "Macintosh HD:Users:Michael:Desktop:Files:" 
set b to folder "Macintosh HD:Users:Michael:Desktop:Copies" 
duplicate every file of a to b 

Ende sagen

Aber ich möchte dies mit jedem HDD Namensgebung und Benutzernamen kompatibel haben. Also suche ich nach einem relativen Pfad, der ~:Desktop entspricht.

Antwort

2

Der relative Pfad entspricht

set desktopFolder to path to desktop 
tell application "Finder" 
    set a to folder "Files:" of desktopFolder 
    set b to folder "Copies:" of desktopFolder 
    duplicate every file of a to b 
end tell 

Aber der Finder hat eine Eigenschaft desktop, die immer auf den Desktop-Ordner des aktuellen Benutzers verweist.

tell application "Finder" 
    set a to folder "Files:" of desktop 
    set b to folder "Copies:" of desktop 
    duplicate every file of a to b 
end tell 

Und - noch kürzer - der Desktop-Ordner des aktuellen Benutzers ist der "root" -Ordner des Finders

tell application "Finder" 
    duplicate every file of folder "Files" to folder "Copies" 
end tell 

Edit:

Das entspricht

~/Library/Containers/com.apple.iWork.Numbers/Data/Library/Application Support/User Templates

ist

((path to library folder from user domain as text) & "Containers:com.apple.iWork.Numbers:Data:Library:Application Support:User Templates:")

+0

Sie @vadian danken, aber was ist, wenn das Ziel nicht auf dem Desktop, sondern in einem tieferen Pfad in der Anwenderbibliothek? – Zeton

+0

Dieser Pfad, um genau zu sein: ~/Library/Containers/com.apple.iWork.Numbers/Daten/Bibliothek/Application Support/User Templates – Zeton

+0

Ich aktualisierte die Antwort – vadian