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"))
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 thisFolder
nicht 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.
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]
wch1zpink