Schritt für Schritt¶
In dieser Anleitung zeigen wir dir Schritt für Schritt, wie du einen Job erstellst der Word Dateien welche älter als 180 Tage sind löscht. Die Namen und Attribute der gelöschten Dateien werden zusätzlich in einer Textdatei gespeichert.
Vorbereitung¶
Diese Anleitung verwendet ein Beispiel-Dateisystem. Lade die folgende ZIP Datei
herunter und entpacke sie in einem Verzeichnis deiner Wahl.
Wir verwenden den Pfad E:\Test\example1
in diesem Beispiel. Wann immer du diesen Verzeichnispfad siehst, ersetze ihn durch den Pfad wo du das Beispiel-Dateisystem entpackt hast.
Erstelle einen neuen Job¶
Starte jetzt die File System Worker Editor Anwendung. Falls du sie bereits geöffnet hast, wähle das Menü
um einen neuen leeren Job anzulegen, oder drücke die Tastenkombination Ctrl-N. Das Editorfenster sieht jetzt wie folgt aus:Gib dem Job zuerst einen aussagekräftigen Titel in Feld Name A:
Delete Outdated Word Documents
Füge eine kurze Beschreibung in Feld Description B hinzu:
This job deletes word documents older than 180 days.
Jetzt fügst du ein Quellverzeichnis zur Liste Source Paths C hinzu. Dazu klickst du auf den Plus-Knopf (+) D am unteren Rand.
Es öffnet sich das folgende Fenster in dem du den Pfad editieren kannst.
Klicke auf den Knopf Select Directory E um das Verzeichnis example1
auszuwählen. Der selektierte Pfad ersetzt danach den Inhalt des Felds.
Bestätige jetzt den Pfad mit dem OK Knopf F. Der editierte Pfad ist jetzt in der Liste der Quellpfade sichtbar G.
Jetzt erstellen wir den Filter um die gewünschten Dateien zu selektieren. Klicke dazu auf den Navigationspunkt Filter H.
Editiere den Filter¶
Der Inhalt mit dem noch leeren Filter wird angezeigt.
Ein leerer Filter, wie in dem Bild oben, passt auf jede Datei. Würdest diesen Job mit dem leeren Filter starten, wird die definierte Aktion für jede Datei und jedes Verzeichnis ausgeführt.
Wir schränken den den Filter jetzt auf die gewünschten Elemente in dem Dateisystem ein.
Als erstes fügen wir ein boolescher AND Container ein. Ohne Container kannst du nur eine einzelne Bedingung dem Filter hinzufügen. Mit Containern kannst du mehrere Bedingungen mit einem boolschen Operator verknüpfen. Container können dabei fast beliebig miteinander kombiniert werden.
Klicke auf den Knopf Add Element A um den Container dem Filter hinzuzufügen.
Es klappt ein Menü auf, mit allen Containern und Bedigungen welche du dem Filter hinzufügen kannst. Klicke auf AND Container B um einen AND-Container hinzuzufügen.
Als nächstes fügen wir die erste Bedingung ein: Wir möchten nur Dateien mit der Endung .docx
löschen. Klicke dazu auf den Knopf Add Element in dem neuen Container.
Wähle in dem Menü zuerst das Untermenü Value Comparison und darin Suffix C. Jetzt siehst du eine neue Bedingung in dem Container, welche das Suffix-Attribut eines Elements testet. Das Suffix-Attribut enthält den letzten Teil eines Datei- oder Verzeichnisnamens der durch einen Punkt abgetrennt ist.
Für den Dateinamen my_demo.docx
wäre das Attribut docx
. Enthält ein Dateinamen kein Punkt, ist das Attribut leer.
Konfiguriere jetzt die neue Bedingung:
Wir möchten das Attribut mit dem Text
docx
vergleichen. Wähle match als Operator aus. Klicke dazu auf den Operator-Knopf D und wähle match aus dem Menü aus.Der match Operator vergleicht den ganzen Text. Die Gross-/Kleinschreibung wird dabei aber ignoriert.
Gib in dem Feld für den Wert E
docx
ein.
Bemerkung
Das Suffix-Attribut macht keinen Unterschied zwischen Dateien oder Verzeichnissen. Unser Filter würde auch auf ein Verzeichnis mit dem Namen example_dir.docx
passen. Um dies zu verhindern, müssten wir eine weitere Bedingung einfügen, welche das Type-Attribut testet. In diesem Beispiel lassen wir der Einfachheit halber diese Bedingung weg.
Auf der rechten Seite findest du Minus-Knöpfe F. Mit diesen kannst du einzelne Bedingungen oder Container aus dem Filter entfernen.
Als nächstest fügen wir die zweite Bedingung ein: Wir möchten nur Dateien Löschen, welche älter als 180 Tage sind.
Klicke dazu wieder auf den Knopf Add Element. Wähle in dem Menü zuerst das Untermenü Value Comparison und darin Modified G. Die neue Bedingung wird am Ende des Containers eingefügt.
Konfiguriere jetzt die neue Bedingung:
Wir möchten dass der Filter auf Dateien passt, welche älter als 180 Tage sind. Daher verwenden wir den Operator before, welcher passt wenn das Datum vor einem Zeitpunkt liegt. Klicke dazu den Operator-Knopf J an und wähle before aus dem Menü.
Der Zeitpunkt für den Filter soll relativ zu dem Zeitpunkt sein, zu dem der Job ausgeführt wird. Klicke dazu auf den Knopf K und wähle Relative Time aus.
Sobald du dies machst, ändert sich der hintere Teil der Bedingung. Hier steht nicht mehr ein absolutes Datum und eine absolute Zeit, sondern Felder um einen relativen Zeitpunkt zu konfigurieren.
Wir möchten einen Zeitpunkt festlegen der 180 Tage vor dem aktuellen Zeitpunkt ist. Dazu müssen wir einen negativen Wert in Feld L eintragen. Negative Werte definieren Zeitpunkte in der Vergangenheit und positive Werte definieren Zeitpunkte in der Zukunft.
Schreibe den Wert -180 in Feld L.
Als letztes möchten wir in Tagen rechnen. Klicke dazu auf den Einheiten-Knopf M und wähle Days als Einheit aus.
Sobald mehrere Bedingungen in einem Container stehen, kannst du mit den Pfeilen N am rechten Rand die Reihenfolge ändern. Die Pfeile verschieben dabei die jeweilige Bedingung eine Stelle nach Oben oder Unten.
Zu deinem Verständnis hier noch eine Illustration der letzten Regel.
Wir möchten Dateien löschen, welche älter als 180 Tage sind. Bei einem relativen Zeitpunkt wird dieser immer ausgehend von dem Zeitpunkt der Job Ausführung berechnet. Lässt du den Wert auf 0
, verwendest du damit das Aktuelle Datum und Zeit von dem Moment in welchem der Job gestartet wird.
Negative Werte bezeichnen Zeitpunkte in der Vergangenheit, positive Werte Zeitpunkte in der Zukunft. Damit wir Dateien welche älter als 180 Tage sind selektieren können, müssen wir einen Zeitpunkt in der Vergangenheit auswählen. In unserm Fall das Datum, von jetzt, 180 Tage in die Vergangenheit.
Uns interessiert nicht dieser Zeitpunkt, sondern alle Dateien welche vor diesem Zeitpunkt das letzte Mal modifiziert wurden. Deswegen verwenden wir den Operator before, der auf alle Zeitpunkte vor diesem Zeitpunkt passt.
Jetzt erstellen wir die eigentlichen Aktionen um die passenden Dateien zu löschen und die Log Datei zu erstellen.
Klicke dazu auf den Navigationspunkt Actions P um die Seite mit den Aktionen anzuzeigen.
Konfiguriere die Aktionen¶
Die Liste mit den Aktionen ist noch leer. Klicke auf den Add-Knopf um das Menü mit den möglichen Aktionen anzuzeigen. Darin wählst du den Punkt Delete A aus.
Die Delete Aktion löscht Dateien und leere Verzeichnisse. Sie wird der Liste hinzugefügt und selektiert. Wir geben dieser Aktion eine passende Beschreibung. Klicke dazu in das Feld Description B und ersetze den Text mit Delete outdated file.
.
Als nächstes brauchen wir eine Aktion welche Details zu der gelöschten Datei in eine Textdatei schreibt. Klicke dazu wieder auf den Add-Knopf und wähle diesmal den Punkt Print to File C aus.
Die Print to File Aktion schreibt beliebigen Text mit Attributen von Elementen in eine Textdatei.
Jetzt Konfigurieren wir die Aktion:
Ersetze den Text im Description D Feld mit:
Log deleted file.
Das Feld Behaviour on Error lassen wir auch bei dieser Aktion auf Stop this Job on Error. Damit wird der Job abgebrochen falls ein Fehler auftritt, also beispielsweise die Textdatei nicht erstellt werden kann.
In dem Feld File Path fügst du den Pfad zu der Textdatei ein, welche erstellt werden soll. Verwende dazu den Knopf Select New File unten an dem Feld. In unserem Beispiel soll die Datei unter
E:Testdeleted_files.txt
angelegt werden.Die Option Collision Handling lassen wir auf Stop with an error.. Falls beim Start des Jobs an dem gewählten Pfad bereits eine Datei existiert wird diese nicht überschrieben, sondern der Job mit einem Fehler abgebrochen.
Jetzt konfigurieren wir den Text in dem Feld Text H, der für jede passende Datei geschrieben wird. Dazu verwenden wir Platzhalter die mit den eigentlichen Attributen ersetzt werden sobald der Job ausgeführt wird.
Als erstes wollen wir den Zeitpunkt festhalten, wann der Job ausgeführt wurde. Klicke dazu auf den Knopf Insert Placeholder und wähle das Untermenü dt, darin das Untermenü Examples und hier den Punkt start|format=iso J.
Nachdem dieser Platzhalter eingefügt wurde, hänge ein Komma daran:
,
Als nächstes möchten wir zwei Attribute der gelöschten Datei in die Datei schreiben.
Klicke auf den Knopf Insert Placeholder, wähle das Untermenü node und darin das Attribut modified K.
Modifiziere den eingefügten Platzhalter wie gezeigt M: Füge den Parameter
|format=iso
hinzu. Der komplette Platzhalter ist damit●[node|modified|format=iso]●
.
Füge dem Text ein weiteres Komma hinzu:
,
Klicke wieder auf den Knopf Insert Placeholder, wähle wieder das Untermenü node und diesmal das Attribut path.
Damit ist unser Text komplett.
Speichere den Job¶
Jetzt ist ein guter Zeitpunkt den Job zu speichern. Wähle dazu den Menüpunkt
oder verwende die Tastenkombination Ctrl+S. Speichere die Job Datei in einem Verzeichnis deiner Wahl. Als Dateiname wird automatisch der Name vorgeschlagen, welchen du als Titel in den primären Einstellungen festgelegt hast.Nachdem du den Job gespeichert hast, siehst du den Dateinamen in der Titelzeile des Editors.
Erzeuge eine Vorschau¶
Bevor wir den Job starten, erzeugen wir eine Vorschau. Damit überprüfen wir, ob die Konfiguration des Jobs so funktioniert, wie wir uns das vorgestellt haben.
Klicke dazu auf den Preview-Knopf A.
Der Editor startet einen Scan und zeigt nach wenigen Sekunden die Vorschauseite an.
In der Mitte dieser Seite siehst du den kompletten Dateibaum der gescannt wurde. Du kannst dabei einzelne Verzeichnisse auf- und zuklappen. Mit den beiden Knöpfen Expand All und Collapse All D werden alle Verzeichnisse auf- oder zugeklappt.
In der Spalte am rechten Rand siehst du, ob Element auf den Filter passt. Ein weisses Quadrat G markiert ein Element, dass nicht auf den Filter passt. So markierte Verzeichnisse enthalten auch keine passenden Elemente.
Passende Elemente sind mit einem grün hinterlegten Häkchen markiert. Ist das Quadrat hellgrün, ohne Häkchen H, enthält das Verzeichnis passende Elemente, passt aber selbst nicht auf den Filter.
Selektierst du eine Zeile in dem Dateibaum E, dann werden dir alle Details zu diesem Eintrag im unteren Bereich F angezeigt. Dort findest du alle Informationen, welche beim Scan abgefragt wurden. Je nach Konfiguration des Jobs findest du hier mehr oder weniger ausgefüllte Felder.
Tippst du einige Zeichen in das Suchfeld C, werden dir nur noch Elemente angezeigt, welche diese Zeichen im Pfad haben.
Neben der Komplettansicht, gibt es auch eine Ansicht welche nur die passenden Elemente zeigt. Klicke Dazu auf die Display Mode Option B und wähle Filter Match List aus.
Jetzt siehst du eine flache liste, mit allen Elementen welche auf den Filter gepasst haben. Anstatt dem Dateinamen, steht der relative Pfad in der ersten Spalte.
Klicke auf den Knopf Statictics J um eine Statistik zu dem Scan anzuzeigen.
In dem Fenster siehst du, wie viele Dateien und Verzeichnisse auf deinen Filter passen, sowie eine Zusammenfassung der Grösse aller Dateien und davon passenden Dateien.
Schliesse nun das Fenster mit der Statistik mit dem Close-Knopf.
Du kannst auch eine Vorschau der Aktionen anzeigen, welche für ein Element ausgeführt werden. Klicke dazu auf den Preview Actions Knopf am unteren Rand. Dieser Knopf ist nur aktiv, wenn ein Element ausgewählt ist, das auf den Filter passt.
Die Vorschau gibt dir einen Überblick, welche Aktionen in welcher Reihenfolge ausgeführt werden. Dabei werden Platzhalter in den Parametern dieser Aktionen mit den Werten des selektierten Elements ersetzt.
In dem gezeigten Beispiel, siehst du den effektiven Text der für die Print to File Aktion geschrieben würde.
Starte den Job¶
Nachdem wir überprüft haben, dass der Job wie gewünscht ausgeführt wird, können wir ihn nun starten. Klicke dazu auf den Run-Knopf A.
Der Job wird gestartet und du siehst alle Meldungen in der Resultat-Ansicht. Der laufende Job kannst du jederzeit mit einem Klick auf den Cancel-Knopf abbrechen.
Nachdem der Job ausgeführt wurde, kannst du die angezeigten Meldungen mit dem Save Log Knopf in einer Datei speichern.
Das Resultat¶
Wenn alles ohne Fehler geklappt hat, siehst du das die Dateien aus dem Testverzeichnis entfernt wurden. Du findest auch die Datei deleted_files.txt
, welche eine Liste der gelöschten Dateien enthält.
2020-07-02T08:17:01Z, 2019-12-15T15:09:46Z, classic_late/investigator_spring/abandon_finger.docx
2020-07-02T08:17:01Z, 2019-09-09T11:34:46Z, classic_late/investigator_spring/come_works_item.docx
2020-07-02T08:17:01Z, 2019-12-29T17:05:52Z, classic_late/investigator_spring/native_diet.docx
2020-07-02T08:17:01Z, 2019-11-20T18:20:46Z, classic_late/investigator_spring/preserve_worry.docx
2020-07-02T08:17:01Z, 2019-10-18T08:04:00Z, classic_late/fine_philosophy_room.docx
2020-07-02T08:17:01Z, 2019-09-22T00:21:36Z, classic_late/goal_regulation_obviously.docx
2020-07-02T08:17:01Z, 2019-08-18T21:59:00Z, classic_late/possibility_good_apple.docx
2020-07-02T08:17:01Z, 2019-11-28T22:37:06Z, classic_late/speech_correspondent.docx
2020-07-02T08:17:01Z, 2019-12-06T06:20:42Z, island_confront_headline/concentrate_mortgage/captain_often.docx
2020-07-02T08:17:01Z, 2019-11-09T05:03:46Z, island_confront_headline/concentrate_mortgage/middle_talk.docx
2020-07-02T08:17:01Z, 2019-12-01T01:46:30Z, island_confront_headline/concentrate_mortgage/pick_request.docx
2020-07-02T08:17:01Z, 2019-08-28T21:16:22Z, island_confront_headline/put_vast_struggle/negotiation_request_dirty/electric_normal_perfectly/airport_able/point_arrangement/absence_discrimination_media.docx
2020-07-02T08:17:01Z, 2019-12-29T01:37:42Z, island_confront_headline/put_vast_struggle/negotiation_request_dirty/electric_normal_perfectly/airport_able/point_arrangement/disease_shit.docx
2020-07-02T08:17:01Z, 2019-11-27T22:54:52Z, island_confront_headline/put_vast_struggle/negotiation_request_dirty/electric_normal_perfectly/airport_able/point_arrangement/fire_second.docx
2020-07-02T08:17:01Z, 2019-12-21T17:31:08Z, island_confront_headline/put_vast_struggle/negotiation_request_dirty/electric_normal_perfectly/airport_able/point_arrangement/throw_lift_map.docx
2020-07-02T08:17:01Z, 2019-12-17T20:45:32Z, island_confront_headline/put_vast_struggle/negotiation_request_dirty/electric_normal_perfectly/airport_able/point_arrangement/whisper_frame_drive.docx
...
Natürlich weicht dein Resultat von dem hier gezeigten ab, da der Filter mit einer relativen Zeit arbeitet. Die Beispieldateien sind in deinem Fall älter als hier gezeigt, und damit werden mehr Dateien gelöscht.