Regel wenn Datum nicht erkannt

Sorry für die Späte Rückmeldung. War ne weile off.
Genauso sollte es sein. Name erstmal egal. Datum wenn nicht aus dem Dokument dann das neuste das mir zur Verfügung steht. Also am besten das Hinzufügedatum. Hatte nicht raus gelesen ob das Script nun schon funktioniert.

Das mit dem Einbinden habe ich noch nie probiert. Gibt es da nen Wiki für? Arbeite mich gern etwas ein.

Ob es ein Wiki gibt, kann ich dir nicht sagen. Aber ein Skript bettest du in eine intelligente Regel ein, indem du als Aktion Skript ausführen > Eingebettet > Skript bearbeiten wählst. Sobald du auf “Skript bearbeiten” tippst, öffnet sich ein Fenster. Das darin enthaltene Basisskript

on performSmartRule(theRecords)
	tell application id "DNtp"
		repeat with theRecord in theRecords
		end repeat
	end tell
end performSmartRule

überschreibst du einfach mit dem Skript, das Pete zur Verfügung gestellt hat. Auf welche Dokumente das Skript angewandt wird bestimmst du mit den Bedingungen der intelligenten Regel.

Wie immer gilt: erst ein paar mal ausprobieren, idealerweise mit eher engen Bedingungen; so kannst du frühzeitig feststellen, ob das Skript das macht, was du willst. Die durch das Skript vorgenommenen Änderungen lassen sich nur manuell rückgängig machen. Sei dir vor allem sicher, dass du das Skript nur auf die Inbox, und z.B. nur nach Import einer Datei anwendest; es ist keine Sicherheit in das Skript eingebaut, d.h. lässt du das Skript mehrfach laufen, so wird der Dateiname jedes mal wieder um ein Datum ergänzt (du kannst dir also vorstellen, was passiert, wenn du anstatt “Inbox” und “Datei ist PDF” “Datenbanken” und “alle Dokumentenarten” wählst, und dein Skript laufen lässt… @pete31 @chrillek mit set thisCheck to texts 1 thru 10 of theName könnte man die ersten 10 Zeichen des Dateinamens erfassen - wie könnte man dann am einfachsten prüfen, ob es sich dabei um ein (vorab durch Petes Skript vorgehängtes) Datum handelt, um eine entsprechende dann lass die Datei in Ruhe-Schleife einzubauen?

1 Like

Und vorzugsweise mit Duplikaten von Dokumenten!

1 Like

Man könnte das in AppleScript mit einem regulären Ausdruck machen (man könnte es in AppleScript auch anders machen, aber darüber kann ich nicht nachdenken, ohne Kopfschmerzen und Ausschlag zu bekommen). @pete21 hat mal etwas über Reguläre Ausdrücke in ObjCAppleScript im Forum geschrieben, aber ich finde es gerade nicht wieder. Muss in einem Thread gewesen sein, den @rufus123 begonnen hatte.
Ergänzung:
hier
steht was dazu (und es ist auch kopfschmerzträchtig)
und hier ist der Post von @pete31, den ich meinte. Da muss man dann nur den regulären Ausdruck ein bisschen anpassen, etwa so

"\\d{4}-\\d\\d-\\d\\d"

Aka “vier Ziffern, Bindestrich, zwei Ziffern, Bindestrich, zwei Ziffern”. Unter der Annahme, dass Bindestrich der Trenner hier ist.

Das würde aber jede 4-stellige Zahl am Anfang des Namens erfassen, oder? Will sagen, es gäbe keine Prüfung, ob es sich tatsächlich um ein Datum handelt?

try
  set thisDate to my convertDate(thisCheck)
on error
  --do the rest of the script
end try

on convertDate(thisCheck)
	return date thisCheck
end convertDate

funktioniert; allerdings kann diese on-Schleife nicht eingebettet werden (bzw. bei DT 3,5 funktionierte das nicht)

Ich warte eh schon den ganzen Tag darauf, dass du das mit zwei Zeilen JS machst :smiley: hat sich die Lieferung mit den gemischten Klammern verspätet? :crazy_face:

@rerexx alles klar? :crazy_face:

Du hast hier 3 Ansätze erhalten, wie du in Petes Skript eine Sicherheitsschleife einbauen könntest, damit Dateinamen die bereits durch das Skript geändert worden sind keine erneute Änderung erfahren können. Wenn du Lust hast, dann ist das ein guter Ansatz um das Skript besser zu verstehen; wenn du versuchen magst, selbst eine solche Schleife einzubauen, kannst du gern das Ergebnis posten oder gezielt nach Hilfe fragen.

Nee, die züchte ich selbst.
Tatsächlich funktioniert JS nicht in smart rules. Sonst würde ich etwa

records.for each(r => {
  let name = r.name();
  if (!/^\d{4}-\d\d-\d\d/.test(name)) {
     ....
  }
})

vorschlagen. Im if dann die jeweiligen Daten auf ! undefined abfragen und gut ist.
Bzw gut wäre, könnte man in smart rules JS benutzen. Schon 'n bisschen schade, Hazel und Drafts zb verarbeiten gerade zu gerne Javascript.

1 Like

Damit hab ich jetzt nen Problem. Also die Umbenennung ist gelaufen aber kein Datu im Dateinamen…
Wie heißt den jetzt die Bedingung dazu? “enthält nicht Datum” gibt’s ja nicht…
Mir fehlt also der Einstieg in die Regel um das Script dann einbinden zu können.

Also die Datei wurde umbenannt, aber nicht umbenannt?

Die Datei wurde von der Regel “umbenennen” bearbeitet aber kein Datum erfasst. Somit also nicht umbenannt. Sorry.

Jetzt brauche ich also den Einstieg um das Script laufen zu lassen… oder wird das in die Regel bereits mit eingebunden?

Poste bitte ein Screenshot deiner Regel

siehe eröffnungspost

Da taucht das Script, mit dem Du angibst ein Problem zu haben, nicht auf. Wie man ein Script in eine Intelligente Regel einbindet, steht in der Dokumentation.

das hat mir gefehlt. also das script in diese regel einbinden…

Danke euch vielmals. Bisher funktioniert das Script einwandfrei, Ich werde einige Tage testen und mich sicher nach den Feiertagen wieder etwas tiefer mit der Materie befassen.

Oder weiter oben in diesem Thread :smiley:

Dieses Snippet…

				try
					set {theYear, theMonth, theDay} to my formatDate(theDate)
				on error
					set theDate to document date of theRecord
					try
						set {theYear, theMonth, theDay} to my formatDate(theDate)
					on error
						set theDate to addition date of theRecord
						set {theYear, theMonth, theDay} to my formatDate(theDate)
					end try
				end try

…lässt sich etwas vereinfachen:

				try
					set {theYear, theMonth, theDay} to my formatDate(theDate)
				on error
					set theDate to addition date of theRecord
					set {theYear, theMonth, theDay} to my formatDate(theDate)
				end try

document date und oldest/newest document date unterscheiden sich nämlich nur, wenn es mehr als ein Datum gibt.

2 Likes

Glaub das hier ist was wir gesucht haben

Smart Rule wildcards

1 Like