Kann ein AppleScript in ein Notes.app-Dokument schreiben?

Ich möchte Text in eine „Notiz“ schreiben (im Gegensatz zu einer standardmäßigen .txt- oder .rtf-Datei), da Mac-Notizen automatisch geräteübergreifend mit einem iCloud-Konto synchronisiert werden.

(Ich verstehe, dass man mit Standard-, also nicht-proprietären Textdokumenten verschiedene Mittel anwenden kann, um den gleichen Effekt zu erzielen, z. B. mit einem Dienst wie Dropbox. Notes.app ist einfach viel bequemer.)

Es scheint jedoch, dass es keine Möglichkeit gibt, in AppleScript in eine Notiz zu schreiben. Ich sage das, weil es nicht scheint, dass Notizen tatsächlich irgendwo auf dem Mac als .rtf-Datei (oder ähnliche) gespeichert werden. Für diese Frage (aber beachten Sie, dass die Frage 2013 gestellt wurde) habe ich die folgenden Verzeichnisse ausgecheckt:

  • ~/Library/Group Containers/group.com.apple.notes/

    • Und
  • ~/Library/Containers/com.apple.Notes/Data/Library/Notes/

Ich habe nichts gefunden, was einem lesbaren Textdokument ähnelte. Ich habe einige dieser Dateien in TextEdit.app geöffnet und festgestellt, dass diese Dateien reinen Kauderwelsch-Text enthalten.

Ich könnte mir vorstellen, dass ich ein AppleScript effektiv codieren könnte, um „in ein Notes-Dokument zu schreiben“, indem ich Mausklicks und Tastendrücke auslöse. Aber ich bin neugierig, ob das Schreiben in eine Notiz auf "richtige" Weise erfolgen kann.

Laut der Bibliothek im Skripteditor scheint Notes vollständig skriptfähig zu sein. Eine der Eigenschaften: body (text) : der HTML-Inhalt der Notiz . Es scheint also mit HTML-Markup skriptfähig zu sein. Macosautomation hat einen älteren Artikel, aber die Notes-App ist ab macOS 10.12 immer noch in der Skriptbibliothek enthalten
Notes speichert seine Daten in einer Datenbank im SQLite-Format 3 und warum es in TextEdit.app wie Gobbledygook-Text aussah, als Sie die Dateien an diesen Speicherorten öffneten. Wenn Sie sich den Inhalt wirklich ansehen möchten, erstellen Sie eine Kopie des Ordners und öffnen Sie die .storedataDatei (die Kopie, nicht das Original) mit Liya .

Antworten (1)

Notes ist skriptfähig und das Wörterbuch kann mit dem Skripteditor für Details geöffnet werden.

Hier gibt es auch ein ausführliches Tutorial .

Obwohl ich es nicht mit iCloud getestet habe, sollten Sie in der Lage sein, das Konto festzulegen und eine Notiz in diesem Konto zu erstellen.

Durch die Vereinfachung des Beispiels auf dieser Seite und die Verwendung meines Exchange-Kontos konnte ich die Notiz mit diesem Skript erstellen:

tell application "Notes"
  tell account "Exchange"
    make new note at folder "Notes" with properties {name:"this is a test", body:"and more text"}
  end tell
end tell

So rufen Sie den Inhalt einer vorhandenen Notiz ab, um sie zu ändern:

tell application "Notes"
  tell account "Exchange"
    tell folder "Notes"
      get body of note "this is a test"
    end tell
  end tell
end tell

Und um den Inhalt zu ändern:

tell application "Notes"
  tell account "Exchange"
    tell folder "Notes"
      set body of note "this is a test" to "reset the body text"
    end tell
  end tell
end tell
Ich habe dies mit meinem iCloud-Konto getestet und es funktioniert einwandfrei. Schön, @Kent
Wissen Sie, ob es möglich ist, eine bereits vorhandene Notiz zu bearbeiten? Oder müssen Sie jedes Mal eine brandneue Notiz erstellen?
Ja. Ich habe die Antwort geändert. Wahrscheinlich möchten Sie eine Variable mit dem ursprünglichen Text setzen und Änderungen vornehmen, bevor Sie den Text auf einen neuen Wert setzen; aber das ist nicht schwierig.
Ich kann erfolgreich get body of note, aber jedes Mal, wenn ich es versuche set body of note, passiert nichts (selbst wenn der Ersatztext richtiges HTML ist). Funktioniert es für Sie?
Ja, das Ausführen aller drei oben genannten Befehle führte zu einer Notiz mit dem Namen "reset the body text". Die Notiz muss genau so benannt werden, wie Sie den Befehl eingeben (im Beispiel „Dies ist ein Test“). Wenn Sie den Körper einmal festlegen, wird der Name tatsächlich in "Textkörper zurücksetzen" geändert. Ich würde also überprüfen, ob die Notizen korrekt benannt sind, oder vielleicht versuchen, eine Notiz ohne Leerzeichen im Namen usw. zu erstellen.
Hier ist eine GIF-Datei , die zeigt, was passiert, wenn ich versuche, eine Notiz zu ändern.
Hmmm ... Das könnte mit iCloud zu tun haben. Wenn ich entweder mit dem Konto "Exchange" oder "On My Mac" laufe, wird es sofort mit dem neuen Text beendet.
Hier ist eine GIF-Datei , die zeigt, was passiert, wenn ich versuche, eine Notiz in meinem „On My Mac“-Konto zu ändern.
Ich bin ratlos. Ich bin auf Sierra 10.12.6; das sollte aber egal sein. Der einzige Unterschied besteht darin, dass Sie die iCloud aktiviert haben und ich nicht. Aber ich verstehe nicht, warum das Ändern von "Auf meinem Mac" dazu führen würde, dass Notes außer Kontrolle gerät.
Ich bin am 10.11.6. Ich vermute, dass es sich um einen El Capitan-Bug handelt.
Wie öffnet man eine vorhandene Notiz? Könnte mir jemand ein Beispielskript zur Verfügung stellen?
Sie können eine Notiz über den zweiten Codeblock oben öffnen. Sie müssen jedoch den Namen der Notiz kennen.
@Kent, der die Notiz nicht öffnet oder sogar dorthin navigiert, wenn Notes bereits ausgeführt wird; es ruft nur den Text ab. Wie öffne ich die Notiz?