Tool für automatisiertes umbenennen und ablegen

Status
Für weitere Antworten geschlossen.

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
Hallo,

gibt es ein Programm/Tool welches automatisiert Dateien umbenennt und in Ordner verschieben kann und auf der Synology läuft ?
So eine Art Hazel oder ähnliches ?

Würde gerne meine digitalen Belege die ich automatisch aus meinem Posteingang auf der DS ablegen lasse auch gerne automatisch umbenennen und wegsortieren lassen.

Vielleicht hat ja jemand einen Tip. Danke.
 

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
Oder kann es nur über ein Script gelöst werden, welches dann über Aufgabenplanung läuft ?
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.863
Punkte für Reaktionen
1.152
Punkte
754
Davon gehe ich aus, ein solches Tool ist mir als Paket nicht bekannt.
 

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
Kann mir jemand weiterhelfen, wie ein Script aussehen muss, was ich in der Synology Aufgabenplanung abspielen lassen kann ?

Über Email und per Scanbot schiebe ich Dokumente auf die Synology, die ich gerne aufgrund von Schlüsselwörter oder Zeichen umbenennen lassen würde.
Beim Kürzel ReA_Ursprung-Beispieltext sollte der Datei automatisch das aktuelle Datum voranstellen und Rechnung_Amazon ausformulieren also so: 2019-01-09_Rechnung_Amazon-Ursprung-Beispieltext

Wäre das durch ein einfaches Script lösbar ?
Nach diesem Scheme könnte man sich dann ja auch für wiederkehrende Dokumente etwas anlegen, die immer gleich aussehen, so das man dann auch noch nichtmal mehr ReA_ oder ähnliches vorstellen muss.

Für Eure Hilfe wäre ich dankbar
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.863
Punkte für Reaktionen
1.152
Punkte
754
Wenn Du Dich nicht mit Shellscripting auskennst, dann wird das schwierig. Dennoch als Anregung ein kleines Skript, was aber angepasst werden muss. Ich habe es getestet, dennoch Nutzung auf eigene Gefahr und immer erst mit Testdaten ausprobieren.

Rich (BBCode):
#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin

cd /hier/muss/der/richtige/pfad/zu/den/umzubenennenden/dateien/rein
for i in `ls .`
do
  case $i in
    (*ReA*)
      newfile="$(date +%Y-%m-%d_)$(echo $i | sed -e 's/ReA/Rechnung_Amazon/')";
      echo $newfile;
      mv $i $newfile;
  esac
done

Du musst in jedem Falle auf Pfade aufpassen, kannst ggfs. weitere case-Abschnitte einfügen und bei Bedarf die echo-Zeile auskommentieren oder herausnehmen.
 

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
Danke dir. Leider kenne ich mich kaum mit Scripting aus. Ich habe auch schon geguckt und bin gerade mit diesem Pyhton script angefangen
Allerdings weiß ich da auch noch nicht wie ich da mehrere Möglichkeiten einbaue und zur Zeit setzt er auch nur Datum Uhrzeit...
Ich probiere dein Script mal anzupassen.

import os
import datetime

src = '/volume1/homes/XX/test.pdf'
dst = '/volume1/homes/XX/%s-text.pdf' % datetime.datetime.now()
os.rename(src, dst)
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.863
Punkte für Reaktionen
1.152
Punkte
754
Wichtig sind beispielsweise noch solche Dinge wie: Werden die Dateien nach Ablauf des Skript an einen anderen Ort verschoben oder läuft das Skript immer wieder auch über alte Dateien drüber. In letzterem fall müsste man aufpassen, das nicht aus Versehen immer wieder das Datum vor den Dateinamen gesetzt werden würde, obwohl sich dort schon ein Datum befindet usw.
 

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
Schlussendlich sollte die umbenannte Datei am besten ein Ordner weiter verschoben werden und der Ursprung gelöscht, dann hätte man damit keine Problem und es wäre sozusagen die Inbox.

Momentan bekomme ich diese Fehlermeldung:
line 3: cd: /volume1/homes/xx : No such File or directory
line 5: syntax error near unexpected token `$'do\r"

Muss ich hier auch was anpassen ?:
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin
Was passiert hier ? Ist das ein Verzeichnis ?
sed -e 's/ReA/Rechnung_Amazon/'
 
Zuletzt bearbeitet:

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.863
Punkte für Reaktionen
1.152
Punkte
754
Du musst mit den Zeilenenden aufpassen, das ^M könnte stören. Du brauchst Unix-Zeilenenden.

PATH ist eine Environmentvariable, in der man Pfade hinterlegen kann, unter denen nach Programmen gesucht wird. So kann man sich sparen, die Programme mit ihrem kompletten Pfad aufzurufen. Da musst Du erstmal nichts anpassen.

Die sed-Zeile bereitet die Umbenennung von ReA in Rechnung_Amazon vor.
 

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
Ich habe eben nochmal die Fehlermeldungen angepasst. Am Anfang hat er die Datei glaube ich gar nicht genommen. Ich habe in der Aufgabenplanung noch bash vorangesetzt, jetzt diese Meldungen:

line 3: cd: /volume1/homes/xx : No such File or directory
line 5: syntax error near unexpected token `$'do\r"
 

gwork

Benutzer
Mitglied seit
21. Okt 2016
Beiträge
77
Punkte für Reaktionen
0
Punkte
6
Ein entsprechendes Skript wurde von stweiss schonmal erstellt und wird in diesem Thread diskutiert und weiterentwickelt.
Das ganze gibts auch bei GitHub.
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.863
Punkte für Reaktionen
1.152
Punkte
754
Das meinte ich vorhin u.a. mit "schwierig": Wir werden es auf diesem Level und mit diesem Medium kaum hinbekommen, bei Dir das Shellskript zu debuggen. Du wirst Dich - fürchte ich - stärker selbst in das Thema einarbeiten müssen. Beispielsweise solltest Du Kommandos wie cd erst auf der Shell testen, bevor Du sie in ein Skript einbaust. Was bekommst Du dann z.B. bei "cd /volume1/homes/xx"? Ich benutze den Benutzer-Home-Dienst nicht, aber der Pfad wirkt auf mich nicht passend. Ggfs. gehst Du erstmal per cd /volume1/homes ein Verzeichnis tiefer ins Filesystem und schaust per ls -al weiter. Aber all das musst Du Dir ggfs. jetzt erstmal selbst draufschaffen. Anleitungen zur Kommandozeile gibt es hier im Wiki, vom Internet ganz zu schweigen.
 

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
@gwork: Dort braucht man aber Docker und das unterstützt meine DS leider nicht.
 

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
Ich habe heute nochmal mit verschiedenen Verzeichnissen auf der Synology probiert, leider noch immer Fehlermeldung.

Aktueller Status: 2 (Unterbrochen)
Standardausgabe/Fehler:
/volume1/homes/xx/Rename1.sh: line 1: ?#!/bin/sh
: No such file or directory
/volume1/homes/xx/Rename1.sh: line 2: $'\r': command not found
/volume1/homes/xx/Rename1.sh: line 4: $'\r': command not found
/volume1/homes/xx/Rename1.sh: line 5: cd: /volume1/xx
: No such file or directory
/volume1/homes/td/Rename1.sh: line 7: syntax error near unexpected token `$'do\r''
/volume1/homes/td/Rename1.sh: line 7: `do
'
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.863
Punkte für Reaktionen
1.152
Punkte
754
Mehr als in Beitrag #12 kann ich kaum schreiben. Du solltest Dich erst einmal mit einer Linux-Kommandozeile (Shell) auseinandersetzen und mit Deinem Filesystem. Unter welchem Pfad befinden sich überhaupt die Daten, um die es Dir geht. Unter /volume1/xx offensichtlich nicht.
 

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
Das sind alles noch Testordner einmal unter /volume1/xx oder unter /volume1/homes/xx und in beiden Ordnern liegen mehrere Test PDF mit Benennung ReA_testname1,2 etc.
Per SSH komme ich auf beide Verzeichnisse mit cd und kann die Dateien dort auch sehen.
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.863
Punkte für Reaktionen
1.152
Punkte
754
Ah, sehr gut. Speicherst Du das Shell-Skript denn mit Unix-Zeilenenden?
 

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
Ich habe das Script einmal unter Powershell als Rename1.ps1 gespeichert da steht im Editor UTF-8 oder soll ich es in den Editor kopieren und unten eine andere Codierung auswählen ?
 

dil88

Benutzer
Contributor
Sehr erfahren
Mitglied seit
03. Sep 2012
Beiträge
29.863
Punkte für Reaktionen
1.152
Punkte
754
Die Kodierung ist das eine, mir geht es um die Zeilenenden. Die dürfen nicht Windows- oder Mac-Style sein, sondern Unix (-> LF)!
 
Zuletzt bearbeitet:

novregen

Benutzer
Mitglied seit
27. Mrz 2010
Beiträge
151
Punkte für Reaktionen
0
Punkte
16
ok, wie kann ich das prüfen ? Zeilenenden erkennt er aber doch korrekt, sonst würden doch nicht die Fehlermelungen für die einzelnen Zeilen kommen oder ?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat