Wie verwende ich eine Variable in einem Pfad in AppleScript?

tell application "System Events"
name of current user
end tell
tell application "System Events"
set answer to name of current user
end tell
tell application "Finder"
delete ((POSIX file "/Users/answer/Desktop/untitled folder"))
end tell
tell application "Finder"
empty the trash
end tell

Ich möchte einen universellen Code zum Löschen dieses bestimmten Ordners erstellen, aber ich kann meine Variable (= Antwort) anscheinend nicht im angegebenen Pfad zum Laufen bringen.

answer

.

delete ((POSIX file "/Users/answer/Desktop/untitled folder"))

Antworten (4)

Die folgenden Zeilen des AppleScript- Codes ersetzen den gesamten Code in Ihrem OP:

set thisFolder to POSIX path of (path to desktop folder as string) & "untitled folder"
try
    tell application "System Events" to delete folder thisFolder
end try

Beachten Sie, dass dies direkt thisFolder und seinen Inhalt löscht und den Papierkorb umgeht . Stellen Sie also sicher, dass Sie dies möchten, bevor Sie es verwenden!

Wie codiert, wenn thisFoldernicht vorhanden, verhindert der try Befehl , dass die Ausführung des Codes fatal gestoppt wird . Mit anderen Worten, Sie erhalten keine Fehlermeldung und es wird ggf. mit der Verarbeitung von zusätzlichem Code im Skript fortgefahren.

Ich mag deinen "KISS"-Ansatz (wie du neulich in einem anderen Beitrag erwähnt hast) mit deiner Antwort hier +1 ;P

Sie müssen die Zeichenfolgenverkettung verwenden , um Ihre Variable in der Zeichenfolge zu erhalten. Speziell in Ihrem Fall sollte so etwas funktionieren, obwohl Sie das möglicherweise wie hier"/Users/" & answer & "/Desktop/untitled folder" beschrieben in Klammern setzen müssen

AFAIR müssen Sie die Zeichenfolgenverkettung verwenden (wie in seiner Antwort erwähnt) und sie in einen Doppelpunktpfad als Zeichenfolge konvertieren:

-- Get and set name of current user
tell application "System Events"
    set UserName to name of current user
end tell

-- Create POSIX path string
set PosixPath to "/Users/" & UserName & "/Desktop/" & "untitled folder"

-- Convert POSIX path into colon path
set ColonPath to (POSIX file PosixPath) as string

-- Delete folder and empty trash
tell application "Finder"
    delete ColonPath
end tell

tell application "Finder"
    empty the trash
end tell

Eine einfachere Version ohne benutzerdefinierte Variablen, die jedoch auf eine Finder-Eigenschaft in der AppleScript-Suite "Finder Basics" ( home (Ordner, r/o) : das Home-Verzeichnis ) zurückgreift, ist:

tell application "Finder"
    delete folder "untitled folder" of folder "Desktop" of home
end tell

tell application "Finder"
    empty the trash
end tell

Bitte verwenden Sie keine einfachen Variablennamen wie "Antwort", da diese mit den reservierten Variablen/Strings von AppleScript in Konflikt geraten könnten!

Wenn Sie das Skript ausführen, während Sie als der Benutzer angemeldet sind, für den Sie das Verzeichnis löschen möchten, können Sie dies einfach als Ihren Dateipfad verwenden. ~/Desktop/Die Tilde (~) symbolisiert/Users/[Current username]

AppleScript akzeptiert keine relativen Pfadnamen. ~/Desktop würde einen Fehler ausgeben.
Aber Bashscripts in AppleScript tun es