Wie bekomme ich meinen AppleScript-Code zum Verschieben von Dateien?

Nachdem ich Automator bereits erfolgreich zum Organisieren von Dateien nach Dateierweiterung verwendet hatte, entschied ich mich, eine AppleScript-Anwendung zu erstellen, die mir das manuelle Ändern von Parametern ersparen wird, da Automator es mir nicht erlaubt, eine Variable für die Aktion „Filter Finder Items“ festzulegen.

Aus irgendeinem Grund beschließt mein AppleScript-Code jedoch, .wad-Dateien nicht tatsächlich zu verschieben. Ich habe es mit .jpg-Dateien getestet und es funktioniert perfekt. Ich habe es mit .epub-Dateien getestet, dasselbe. Aber es scheint nicht in der Lage zu sein, .wad-Dateien zu erkennen.

Unten ist mein Code. Es erstellt den Ordner am richtigen Ort mit dem Namen, den ich im ersten Dialogfeld eingegeben habe, aber es verschiebt keine .wad-Dateien an den neuen Ort. Am Ende erstelle ich nur einen leeren Ordner. Das Ergebnis, das AppleScript mir gibt, wenn das Skript beendet wird, ist {}

display dialog "Set folder name" default answer ""
set foldername to (text returned of result)

display dialog "Set file type" default answer ""
set filetype to (text returned of result)

set newfolder to ((path to downloads folder as text) & foldername as text)

tell application "Finder"

    if not (exists folder ((path to downloads folder as text) & foldername as text)) then
        make new folder at (path to downloads folder) with properties {name:foldername}
    end if

    move (every file of folder (choose folder) whose name extension is filetype) to folder newfolder

end tell
Sind .wadDateien einzelne Dateien und keine Bündel oder Ordner? Haben Sie versucht, das Ergebnis von zu untersuchen, every file of folder … whose name extension is …um sicherzustellen, dass es mit etwas übereinstimmt?
Die .wad-Dateien sind einzelne Dateien, ja. Sie sind Wii Homebrew-Softwaredateien. Ich erhalte korrekte Ergebnisse für alle Dateitypen außer .wad-Dateien. Ich habe dieses Skript mit .jpg-Dateien, .epub-Dateien, .zip-Dateien und .7z-Dateien getestet und alle funktionieren einwandfrei. Das Skript erkennt sogar .wad-Dateien, deren Erweiterung zum Beispiel in .jpg geändert wurde.
Spaß, ich verbinde sie mit dem Spiel Doom. Haben Sie es display dialogmit der gefundenen Dateiliste versucht, anstatt sie zu verschieben? Enthält die Liste Übereinstimmungen?
Ich habe die Anzeigedialogliste (jede Datei des Ordners (Ordner auswählen) mit der Namenserweiterung Dateityp) vor dem Verschieben (jede Datei des Ordners (Ordner auswählen) mit der Namenserweiterung Dateityp) zum Ordner newfolder hinzugefügt und die Verschiebungszeile auskommentiert. AppleScript gab das Ergebnis "Fehler "Finder got an error: Can't make list {} into type string." number -1700 from list {} to string". Ist der Code zum Auflisten des Ordnerinhalts falsch?

Antworten (1)

Es scheint, dass die folgende Zeile eine leere Liste zurückgibt:

every file of folder (choose folder) whose name extension is filetype

Probieren Sie als Experiment einen anderen Suffix-Matching-Ansatz aus:

every file of folder (choose folder) whose name ends with ".wad"

Stellen Sie im Finder sicher, dass die .wadDateien tatsächlich ihren vollständigen Namen anzeigen. Tun Sie dies mit Get Info für eine wadDatei im Finder. Es ist unwahrscheinlich, aber möglich, dass das wahre Dateisuffix ausgeblendet und somit nicht abgeglichen wird.

Das hat tatsächlich die .wad-Dateien verschoben! Obwohl die Dateierweiterung definitiv .wad ist, scheint die Dateierweiterung Wads nicht erkannt zu haben. Ich habe diese Codezeile mit Ihrem Vorschlag umgeschrieben und die Variable hinzugefügt, und es scheint zu funktionieren! Vielen Dank!